用java编写qq_类似QQ聊天功能怎么用Java实现的啊???求大神啊

//服务器端程序

import java.net.*;

import java.io.*;

public class serverSocket

{ static public void main(String args[])  throws IOException

{ //构造ServerSocket对象,端口为3000

ServerSocket serversoc=new ServerSocket(3000);

System.out.println("在等待一个连接...");

Socket soc=serversoc.accept();     //服务端等待一个连接,返回新套接口soc

//在新套接口soc上构造输入流in、输出流out

BufferedReader in=new BufferedReader(new InputStreamReader(soc.getInputStream()));

PrintWriter out= new PrintWriter (soc.getOutputStream(),true);

InetAddress  clientIP=soc.getInetAddress();          //得到客户端IP地址

System.out.println("连接到一个客户,IP地址是:"+clientIP);

out.println("欢迎!");                            //向客户端发出表示接通的信息

String clientStr=in.readLine();                       //读取客户端的一行信息

while(!clientStr.equals("Bye!"))                      //与客户端通信的循环

{ System.out.println("客户端说:"+clientStr);

out.println("接收到您的信息——"+ clientStr);        //向客户端回应接到的信息

clientStr=in.readLine();

}

System.out.println("客户端说:"+clientStr);       //客户端的最后一句话

System.out.println("客户端已经离去。");

in.close();                                   //关闭输入流

out.close();                                  //关闭输出流

soc.close();                                  //关闭soc

serversoc.close();                             //关闭serversoc

}

}  //服务器端程序结束

//客户器端程序

import java.net.*;

import java.io.*;

public class clientSocket

{static public void main(String args[])  throws IOException

{ BufferedReader  In = new BufferedReader(new  InputStreamReader(System.in));

//构造Socket对象, 指向本机, 端口3000

Socket soc=new Socket("localhost",3000);

System.out.println("连接到服务器...");

BufferedReader serin = new BufferedReader(new

InputStreamReader(soc.getInputStream()));       //建输入流

PrintWriter out = new PrintWriter(new

OutputStreamWriter(soc.getOutputStream()),true);        //建输出流

String serverStr=serin.readLine();                 //读取一行服务器端来的信息

System.out.println("服务器端说:"+serverStr);

String outServer=In.readLine();               //从键盘输入一行要发给服务器的文字

while(!outServer.equals("Bye!"))              //与服务器通信的循环

{ out.println(outServer);                     //发一条信息给服务器端

serverStr=serin.readLine();                 //读取一行服务器端来的信息

System.out.println("服务器端说:"+serverStr);

outServer=In.readLine();              //从键盘输入一行要发给服务器端的文字

}

out.println(outServer);                //发最后一条信息(Bye!)给服务器端

serin.close();

out.close();

soc.close();

}

}  //客户器端程序结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值