java实现Socket编程实例代码详解编程语言

服务器端

/** 
 * @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(); 
        } 
 
    } 
 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10299.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论