当前位置 : 主页 > 编程语言 > c++ >

java 服务器端socket

来源:互联网 收集:自由互联 发布时间:2021-07-03
gistfile1.txt import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/** * 服务器端Socket * @author YJ */public class Server {private ServerSocket se
gistfile1.txt
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务器端Socket
 * @author YJ
 */
public class Server {
	
	private ServerSocket serverSocket;

	public Server(){
		
		try {
			serverSocket = new ServerSocket(8000);				//创建服务器Socket
			System.out.println("a server started...");
			while(true){
				Socket connectToClient = serverSocket.accept();			//启动客户端监听
				new ServerThread(connectToClient).start();				//客户端连接之后 启动新线程
			}
		} catch (IOException e) {
			e.printStackTrace();
		}	
	}
	
  
  
class ServerThread extends Thread{		//内部线程类

	private DataInputStream isFromClient;
	private DataOutputStream osToClient;

	public ServerThread(Socket connectToClient){
			
		System.out.print("a client connected: ");
		System.out.println(connectToClient.getRemoteSocketAddress());
		
		try {
			isFromClient = new DataInputStream(connectToClient.getInputStream());
			osToClient = new DataOutputStream(connectToClient.getOutputStream());
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
		  
	public void run() {
		
		while(true){	 //可多长输入输出
			try {
				int i = isFromClient.readInt();		//读入客户端传入值
				osToClient.writeInt(i*i);				//返回值的平方
			} catch (IOException e) {
				System.out.println("a client closed...");
				break;
			}
		}
	}	  
}
  

  public static void main(String[] args) { 
	  new Server();
  }
  
}
网友评论