分享

网络编程,基于socket实现客户端和服务端间的通信,挺重要

 天道酬勤YXJ1 2017-01-04

网络编程是很重要的一门技术,如今的时代是一个网络的时代,网络编程也是非常重要的编程基础,网络编程涵盖的内容很多,需要熟悉socket、tcp/ip、加密解密、通信协议、高效通信,今天就完成一个小小的案例,通过socket实现网络编程,客户端和服务器端之间的通信问题,这在许多公司的工作要求和面试中都是必须的,希望这篇文章对您能有帮助,如果有帮助,欢迎您的关注:趣IT科技,每天持续分享。

网络编程,基于socket实现客户端和服务端间的通信,挺重要

通信模型

什么是socket?

socket又叫套接字是网络编程的核心,他通过操纵流的方式,来完成客户端和服务端的数据交换,以此来达到通信的目的,Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。在编程语言中java无疑是操作网络编程不错的语言,下面我们就通过java语言的方式来给大家演示基于socket的网络编程

客户端代码

import java.io.*;

import java.net.*;

public class Client

{

Socket socket;

BufferedReader in;

PrintWriter out;

public static void main(String[] args)

{

new Client();//调用构造方法

}

public Client()//构造方法

{

try

{

socket = new Socket('localhost',8082);//localhost代表本机,端口8082

BufferedReader line = new BufferedReader(new

InputStreamReader(System.in));

out = new PrintWriter(socket.getOutputStream(),true);//获取输出流

out.println(line.readLine());

in = new BufferedReader(new InputStreamReader(socket.getInputStream()));//获取输入流

System.out.println(in.readLine());

out.close();//用完流之后关闭

in.close();

socket.close();

}catch(IOException e)

{

out.println('出现错误');

}

}

};

网络编程,基于socket实现客户端和服务端间的通信,挺重要

客户端代码

服务端代码

import java.net.*;

import java.io.*;

public class Server{

private ServerSocket ss;

private Socket socket;

private BufferedReader in;

private PrintWriter out;

public Server(){

try{

ss=new ServerSocket(8082);//这个端口需要和客户端的一致,不然连接不上

while(true)//while循环,来来回回的接受客户端,客户端可能不止一个

{

socket = ss.accept();//获取socket,他是一个堵塞程序

String IP = socket.getInetAddress().getHostAddress();//获取ip地址

String RemotePort = ':'+socket.getLocalPort();

System.out.println('连接成功'+IP+RemotePort);

in = new BufferedReader(new

InputStreamReader(socket.getInputStream()));

String line = in.readLine();//读取一行

System.out.println('客户端' + line);//输出客户端的数据

out = new PrintWriter(socket.getOutputStream(),true);

out.close();//关闭流

in.close();

socket.close();

}

}catch (IOException e){

out.println('错误');//异常出错

}

}

public static void main(String[] args)

{

new Server();

}

}

网络编程,基于socket实现客户端和服务端间的通信,挺重要

服务端代码

这些代码实现了什么?

这些分别是客户端和服务器端,运行服务端和客户端,客户端会放松数据给服务端,如果服务端能够正常接收并输出就表示连接正确,如果失败服务端会出异常,并将异常情况发送给客户端,表示连接失败。

网络编程有什么用?

下面是网络上一个找工作的自述:作为刚毕业的学生,我还是满腔热血的,希望可以在工作上搏一搏的,于是开始投简历。然后陆陆续续面试了3家,面试过程中都问到会不会网络编程,但是由于之前的工作项目都没有用到过网络编程,所以我都回答的是工作上没用过,但是学习过,了解过,于是就都悲剧了。面试官都以工作时间少,技术对于他们的岗位稍显薄弱为由婉拒了我。事实上许多公司对这些东西还是作为考核的标准的,所以如果你想找工作,建议还是把这方面的内容系统的学习一下,提升自己的核心竞争力。
网络编程,基于socket实现客户端和服务端间的通信,挺重要

结语:关注我们

每天都会持续分享有关计算机编程的知识,c语言javaphpweb方面的等等,如果你有兴趣就来关注我们吧,你的鼓励将是我们进步的最大动力,还等什么,欢迎关注趣IT科技吧,欢迎转发,收藏,和评论,喜欢你就点个赞

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约