talkserver.java
来自「多对多JAVA聊天程序,用的是多线程和SOCKET编程实现」· Java 代码 · 共 76 行
JAVA
76 行
import java.io.*;
import java.net.*;
public class TalkServer{
public static void main(String args[]){
try{
ServerSocket ss = new ServerSocket(1234);
Socket s = ss.accept();
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
ReceiveClient rc = new ReceiveClient(dis);
SendClient sc = new SendClient(dos);
Thread t1 = new Thread(rc);
Thread t2 = new Thread(sc);
t1.start();
t2.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
class ReceiveClient implements Runnable{
private DataInputStream dis;
public ReceiveClient(DataInputStream dis){
this.dis = dis;
}
public void run(){
try{
while(true){
String str = dis.readUTF();
System.out.println(str);
if(str.equals("bye")){
System.exit(0);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
class SendClient implements Runnable{
private DataOutputStream dos;
public SendClient(DataOutputStream dos){
this.dos = dos;
}
public void run(){
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
while(true){
if(!str.equals("bye")){
dos.writeUTF(str);
}else{
dos.writeUTF("bye");
System.exit(0);
}
str = br.readLine();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?