📄 socket_server.java
字号:
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.util.Iterator;
class People
{
public static final String people="people";
}
class Server
{
public static ArrayList list=new ArrayList();
public static void main(String args[])
{
try
{
ServerSocket server=new ServerSocket(6000);
System.out.println("Server is beginning......");
while(true)
{
Socket socket=server.accept();
Server_Thread serverthread=new Server_Thread(socket);
list.add(serverthread);
serverthread.start();
}
}
catch(Exception e)
{
}
}
}
class Server_Thread extends Thread
{
Socket socket;
BufferedReader buffer;
BufferedReader reader_msg;
String message;
String name_sgl;
String name;
String ip;
StringBuffer info=new StringBuffer();
Server_Thread(Socket socket)
{
this.socket=socket;
try{
buffer=new BufferedReader(new InputStreamReader(socket.getInputStream()));
message=buffer.readLine();
System.out.println("端口:"+socket.getPort());
System.out.println(message);
StringTokenizer strtok=new StringTokenizer(message,":");
String aa=strtok.nextToken();
while(strtok.hasMoreTokens())
{
name=strtok.nextToken();
ip=strtok.nextToken();
}
info=info.append(People.people);
}
catch(Exception e)
{
}
}
public void run()
{
try{
//System.out.println(info);
Iterator iter=Server.list.iterator();
while(iter.hasNext())
{
String bb=((Server_Thread)iter.next()).name;
System.out.println(bb);
info.append(":"+bb);
}
System.out.println(info);
Iterator it=Server.list.iterator();
while(it.hasNext())
{
Socket cc=((Server_Thread)it.next()).socket;
PrintWriter print=new PrintWriter(cc.getOutputStream());
print.println(info);
print.flush();
}
while(true)
{
reader_msg=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg=reader_msg.readLine();
System.out.println(msg);
StringTokenizer sk=new StringTokenizer(msg,":");
String temp=sk.nextToken();
if(temp.equals("SL"))
{
while(sk.hasMoreTokens())
{
String message_sgl=sk.nextToken();
name_sgl=sk.nextToken();
}
Iterator i=Server.list.iterator();
while(i.hasNext())
{
Server_Thread thread=(Server_Thread)i.next();
String ee=thread.name;
Socket yy=thread.socket;
if(name_sgl.equals(ee))
{
PrintWriter print_sgl=new PrintWriter(yy.getOutputStream());
print_sgl.println(msg);
print_sgl.flush();
System.out.println("true");
System.out.println(msg);
}
}
}
if(temp.equals("MSG"))
{
Iterator itor=Server.list.iterator();
while(itor.hasNext())
{
Socket bb=((Server_Thread)itor.next()).socket;
PrintWriter print_msg=new PrintWriter(bb.getOutputStream());
print_msg.println(msg);
print_msg.flush();
}
System.out.println(msg);
}
}
}
catch(Exception e)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -