⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysocket.java

📁 用java实现简单的:简单聊天程序 多线程 计数器 记事本 马鞍点 扇子 学生成绩管理系统 异常处理 字符串类
💻 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 + -