java实现Socket编程实例代码
2018-07-20 来源:open-open
服务器端
客户端:
/** * @author GUXIA */ import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class ChatServer { public static void main(String[] args) { try { //创建服务器端套接字,接受来自客户端的连接请求 ServerSocket ss=new ServerSocket(9999); Socket s=ss.accept(); //获取客户端套接字的输出流 OutputStream os=s.getOutputStream(); DataOutputStream dos=new DataOutputStream(os); //获取客户端输入流 InputStream is=s.getInputStream(); DataInputStream dis=new DataInputStream(is); //创建字符输入流接受键盘输入 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); String message; while(true){ //获取客户端输入流,并打印在屏幕上,如果客户端说的是“再见”,退出 message=dis.readUTF(); System.out.println("客户端:"+message); if(message.equals("再见")) break; //读取键盘输入并写入到输出流(客户端的输入流) message=br.readLine(); dos.writeUTF(message); } dis.close(); dos.close(); ss.close(); s.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
客户端:
import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; public class ChatClient { public static void main(String[] args) { try { //创建客户端套接字 Socket sc=new Socket("localhost",9999); //获取套接字输入流 InputStream is=sc.getInputStream(); DataInputStream dis=new DataInputStream(is); //获取套接字输出流 OutputStream os=sc.getOutputStream(); DataOutputStream dos=new DataOutputStream(os); //创建字符输入流接受键盘输入 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //聊天 String message; while(true){ //读取键盘输入的字符,写到客户端输出流 message=br.readLine(); dos.writeUTF(message); if(message.equals("再见")) break; //读取服务器端的数据并打印到屏幕上 message=dis.readUTF(); System.out.println("服务器:"+message); } dis.close(); dos.close(); sc.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:Java通用工具类方法
下一篇:CSS3 实现图片上浮动画
最新资讯
热门推荐