java实现简单的Socket通信

                                                                 java Socket 编程

数据发送的过程:

1:产生Socket

2:调用bind的信息,通知给驱动程序

3:应用程序将要发送的数据传送给Socket

4: 驱动从Socket 取出数据,并通过网卡发送出去

数据的接收过程:

1:产生Socket

2:调用bind的信息,通知给驱动程序

3:驱动程序根据从网卡传送的数据报中的指定目标端口号,将处理后的传所迷惑到相应的Socket

4:应用程序从Socket中取出数据

 整个发送和取出的过程都是通过IO流实现的

Socket中写入数据的时候使用OutPutStream。读取Socket的数据时使用InputStream

实现服务器端与客户端程序:

服务器端:

public classServerSocket :此类实现服务器套接字。服务器套接字等待请求通过网络传入。

ServerSocket int port): 创建绑定到特定端口的服务器套接字

void setTimOut int timeout):通过指定超时值(毫秒为单位)

IntentAdress getIntentAdress():返回次服务器套接字的本地地址

Socket accept ():侦听并接受到此套接字的连接

客户端:

public class Socket  :此类实现客户端套接字。

Socket String host int port):创建一个流套接字并将其连接到指定主机上的指定端口号、

InputStream getInputStream ():返回套接字的输入流

OutPutStream getOutPutStream():返回此套接字的输出流。

服务器端实现过程:

public static void main(String[] args) {

try {

//创建一个服务器端的Socket

ServerSocket server = new ServerSocket(8888);

System.out.println("服务器已启动,正在等待连接中。。。。");

Socket s=server.accept();//等待客户端连接,会阻塞

String info = "hello ,serviceClient \n";

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

s.getOutputStream();//得到输出流

bw.write(info);

bw.close();

catch (IOException e) {

e.printStackTrace();

}

}

客户端代码:

public static void main(String[] args) {

try {

//创建一个客户端的Socket对象(主机名。端口号)

Socket socket = new Socket("localhost", 8888);

System.out.println("与服务器连接成功");

BufferedReader  br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

String info = br.readLine();

System.out.println(info);

br.close();

 

catch (UnknownHostException e) {

e.printStackTrace();

catch (IOException e) {

e.printStackTrace();

}

}

在启动的时候,先启动服务器端,然后启动客户端程序即可。这样一个简单地Socket通信就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值