网络程序设计-为多个客户服务服务器端设计

package bjfu.dianzi.wzz;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Handler;

public class MultiThreadServer {
    public static void main(String[] args) {
        try{
            ServerSocket serverSocket=new ServerSocket(8000);
            int clientNo=1;
            while(true)
            {
                Socket connectToClient =serverSocket.accept();//monitor the request from client
                System.out.println("the thread open for client is "+clientNo);
                InetAddress clientInetAddress=connectToClient.getInetAddress();//get the address
                System.out.println("customer's "+clientNo+"hostname is "+clientInetAddress.getHostName());
                System.out.println("customer's "+clienNo+"ip address is "+clientInetAddress.getHostAddress());
                ThreadHandler thread=new ThreadHandler(connectToClient,clientNo);
                Thread.start();
                clientNo++;
                
            }
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}
class ThreadHandler extends Thread
{
    private Socket connnectToClient;
    public ThreadHandler(Socket socket,int i)
    {
        connnectToClient=socket;
    }
    @Override
    public void run ()
    {
        try{
            DataInputStream isFromClient =new DataInputStream(connnectToClient.getInputStream());
            DataOutputStream osToClient =new DataOutputStream(connnectToClient.getOutputStream());
            while(true)
            {
                int num=isFromClient.readInt();
                System.out.println("the number received from client is "+num);
                int sq=num*num;
                osToClient.writeInt(sq);
                System.out.println("square number is "+sq);
            }
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}



























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值