java实现简单TCP聊天程序
本文实例为大家分享了java实现TCP聊天程序的具体代码,供大家参考,具体内容如下
服务端代码:
packagecom.test.server;
importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.ServerSocket;
importjava.net.Socket;
publicclassServer{
publicstaticvoidmain(String[]args){
newServer().startServer();
}
publicvoidstartServer(){
try{
//服务器在9990端口监听客户端的连接
ServerSocketss=newServerSocket(9999);
System.out.println("serverislistening...");
while(true){
//阻塞的accept方法,当一个客户端连接上,才会返回Socket对象
Sockets=ss.accept();
System.out.println("aclienthasconnected!");
//开启线程处理通信
newCommunicateThread(s).start();
}
}catch(IOExceptione){
e.printStackTrace();
}
}
publicclassCommunicateThreadextendsThread{
Socketsocket;
DataInputStreamdis;
DataOutputStreamdos;
publicCommunicateThread(Socketsocket){
this.socket=socket;
try{
dis=newDataInputStream(socket.getInputStream());
dos=newDataOutputStream(socket.getOutputStream());
}catch(IOExceptione){
e.printStackTrace();
}
}
@Override
publicvoidrun(){
super.run();
//读取客户端发过来的消息
Stringmsg=null;
try{
while((msg=dis.readUTF())!=null){
System.out.println("clientsendmsg:"+msg);
StringreplyMsg="serverreply:"+msg;
dos.writeUTF(replyMsg);
System.out.println("serverreplymsg:"+replyMsg);
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
客户端代码:
packagecom.test.client;
importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.Socket;
importjava.util.Scanner;
publicclassClient{
publicstaticvoidmain(String[]args){
newClient().startClient();
}
publicvoidstartClient(){
try{
//连接到服务器
Socketsocket=newSocket("localhost",9999);
DataInputStreamdis=newDataInputStream(socket.getInputStream());
DataOutputStreamdos=newDataOutputStream(socket.getOutputStream());
Scannerscanner=newScanner(System.in);
Stringline=null;
listenServerReply(dis);
while((line=scanner.nextLine())!=null){//读取从键盘输入的一行
dos.writeUTF(line);//发给服务端
System.out.println("clientsendmsg:"+line);
}
}catch(Exceptione){
e.printStackTrace();
}
}
//监听服务端回复的消息
publicvoidlistenServerReply(finalDataInputStreamdis){
newThread(){
@Override
publicvoidrun(){
super.run();
Stringline=null;
try{
while((line=dis.readUTF())!=null){
System.out.println("clientreceivemsgfromserver:"+line);
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}.start();
}
}
先启动服务端,再启动客户端,在客户端的控制台输入消息并回车,就可以发送消息给客户端了,客户端收到消息后,马上会回复一个消息
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短