java 即时通信 入门_java socket通讯(一) 入门示例

一、入门

要想学习socket通讯,首先得知道tcp/ip和udp连接,具体可参考浅谈TCP/IP 和 UDP的区别

二、示例

首先新建了一个java工程,包括两个部分,客户端SocketClient类和服务器端SocketServer类,服务器端SocketServer监听3756端口,客户端SocketClient往服务器端的3756端口发送一些文本信息,服务器端SocketServer接受完客户端的信息后,将客户端的信息打印出来。

服务器端SocketServer:

packageGPS;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.io.BufferedWriter;importjava.io.OutputStreamWriter;importjava.net.ServerSocket;importjava.net.Socket;public classSocketServer {public static voidmain(String [] args){

ServerSocket ss= null;

BufferedReader br= null;

Socket sk= null;try{

System.out.println("create server socket....");

ss= new ServerSocket(3756);

System.out.println("wait for a connection....");while(true) //服务器端一直监听这个端口,等待客户端的连接

{

sk=ss.accept();

System.out.println("get a socket object...");

br= new BufferedReader(newInputStreamReader(sk.getInputStream()));

String line= null;while((line = br.readLine()) != null){

System.out.println(line);//服务器端打印客户端发送的信息数据

}

}

}catch(Exception ex){

System.out.println(ex.getMessage());

}finally{try{if(br != null){

br.close();

}if(ss != null){

ss.close();

}if(sk != null){

sk.close();

}

}catch(Exception ex){

System.out.println(ex.getMessage());

}

}

}

}

客户端SocketClient:

packageGPS;importjava.io.BufferedInputStream;importjava.io.BufferedWriter;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;importjava.text.SimpleDateFormat;importjava.util.Date;public classSocketClient {public static voidmain(String [] args){

Socket sk= null;

PrintWriter pw= null;try{

sk= new Socket("localhost",3756);

pw= new PrintWriter(new BufferedWriter(newOutputStreamWriter(sk.getOutputStream())));while(true)

{

Thread.sleep(3000);

pw.println("I come from client"); //客户端往服务器端发送数据

pw.flush();

}

}catch(Exception ex){

System.out.println(ex.getMessage());

}finally{try{if(sk != null){

sk.close();

}if(pw != null){

pw.close();

}

}catch(Exception ex){

System.out.println(ex.getMessage());

}

}

}

}

三、运行

首先启动服务器端SocketServer,然后运行客户端类SocketClient,服务端每隔3秒就会收到客户端发送来的信息:I come from client

create server socket....

wait for a connection....

get a socket object...

I come from client

这样就完成了一次socket连接请求,原理很简单,服务器端监听某一个端口,客户端向服务器端的指定端口请求连接,连接成功后,发送socket数据,服务器端接收并打印输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值