Socket编程实现简易的聊天功能

网络:指的是将物理上分离的计算机通过连接形成的布局,而网络编程指的是实现网络的通讯操作,而在实际的工作之中网络编程分为两类:
· C/S结构(Client / Server):类似于QQ,需要编写两套程序,一套是服务器端程序,另外一套是客户端程序,而在进行维护的时候也需要维护两套程序,C/S使用专署的协议,所以安全性较高;
· B/S结构(Browse/Server):利用浏览器实现客户端功能,开发者只需要开发出服务器端一套程序即可,维护的时候也只需要维护一套程序,B/S结构一般都使用公共的通讯协议(HTTP),所以安全性较差。
         在C/S开发之中也分为两种:TCP(可靠的传输)、UDP(数据报的传输)。今天的内容主要以TCP程序为主,而这个就是Socket程序。

服务端:
public class Server {
    public static void main(String[] args) {
       try {
           ServerSocket server=new ServerSocket(10010);
           Socket socket=server.accept();
           
           try {
               DataInputStream dis=new DataInputStream(socket.getInputStream());//得到高级输入流
               
               DataOutputStream dos=new DataOutputStream(socket.getOutputStream());//得到高级输出流
               
//             String get="";
               String give="";
               Scanner scanner=new Scanner(System.in);
               while(true){
                  System.out.println("傻毕说:"+dis.readUTF());//得到客户端的消息
                  give=scanner.nextLine();                      
                  dos.writeUTF(give);                         //给客户端发消息
               }
           } finally{
               socket.close();
           }
       } catch (IOException e) {
           e.printStackTrace();
       }
    }
}
客户端:
public class Client {
    public static void main(String[] args) {
       try {
           Socket client=new Socket("192.168.100.134",10010);
           
           try{
               DataOutputStream dos=new DataOutputStream(client.getOutputStream());//得到输出流
               DataInputStream dis=new DataInputStream(client.getInputStream());//得到输入流
               
               String give="";
               Scanner scanner=new Scanner(System.in);
               
               while(true){
                  give=scanner.nextLine();
                  dos.writeUTF(give);    //客户端发消息
                  
                  System.out.println("服务器说:"+dis.readUTF());
               }
               
           }finally{
               client.close();
           }
           
           
       } catch (IOException e) {
           e.printStackTrace();
       }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值