📄 mysocket.java
字号:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.IOException;
public class MySocket extends Thread
{
public static final int port = 6000;
Socket s;
static ServerSocket Myserver;
public MySocket(Socket s)
{
this.s= s ;
}
public void run()
{
try
{
String str ;
// System.out.println("服务区已启动: "+Myserver);
System.out.println("网友 "+ s.getInetAddress() + "上线");
InputStream fIn=s.getInputStream(); //从客户端接受流
OutputStream fOut=s.getOutputStream();//向客户端发送流
InputStreamReader isr=new InputStreamReader(fIn); //从客户端接受流
BufferedReader in=new BufferedReader(isr); //从客户端接受流
PrintStream out=new PrintStream(fOut); //向客户端发送流
InputStreamReader userisr=new InputStreamReader(System.in); //接受用户的输入数据流
BufferedReader userin=new BufferedReader(userisr); //接受用户的输入数据流
while(true)
{
// System.out.println("等待客户端的消息...");
str=in.readLine();//读客户端传送的字符串
System.out.println(str); //显示字符串
if(str.equals("end"))break; //如果是end,则退出
// System.out.print("给客户端发送:");
// str=userin.readLine();
// out.println(str); //向客户端发送消息
if(str.equals("end"))break;
}
s.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
static void server() throws IOException
{
Myserver = new ServerSocket(5000);
System.out.println("服务器已经启动,等待聊友上线");
while(true)
{
MySocket sock = new MySocket(Myserver.accept());
sock.start();
}
}
public static void main(String[] args)throws IOException
{
if(args.length ==0)
{
server();
}
else
{
client cc = new client(args[0]);
cc.start();
}
}
}
class client extends Thread
{
InetAddress addr;
Socket socket;
InputStream fIn;
OutputStream fOut;
InputStreamReader isr;
BufferedReader in;
PrintStream out;
InputStreamReader userisr;
BufferedReader userin;
String str,name;
client(String name)
{
this.name = name;
try{
addr=InetAddress.getByName("127.0.0.1");
socket=new Socket(addr,6000);
System.out.println("你上线成功"+socket);
//获得对应socket的输入/输出流
fIn=socket.getInputStream();
fOut=socket.getOutputStream();
//建立数据流
isr=new InputStreamReader(fIn);
in=new BufferedReader(isr);
out=new PrintStream(fOut);
userisr=new InputStreamReader(System.in);
userin=new BufferedReader(userisr);
}catch(Exception e)
{
e.printStackTrace();
}
}
public void run()
{
try
{
while(true)
{
System.out.print("发送消息:");
str=name+":"+userin.readLine(); //读取用户输入的字符串
out.println(str); //将字符串传给服务器端
if(str.equals("end"))break; //如果是"end",就退出
// System.out.println("等待服务器端消息...");
// str=in.readLine(); //获取服务器获得字符串
// System.out.println("服务器端字符:"+str);
if(str.equals("end"))break;
}
socket.close(); //关闭连接
}catch(Exception e)
{
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -