Socket通信编程基础__实例一__server端

1、服务端编程示例(SocketServer.java)

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketServer {

    private final static Logger logger = LoggerFactory.getLogger(SocketServer.class.getName());
    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) {
        if(args == null ){
            logger.info("[error] Server args is null");
            System.exit(0);
            return ;
        }
   
        String portVal = args[0];
        logger.info(" Server Start Port["+portVal+"]!!!!");
        SocketServer server = new SocketServer();
        server.doListen(Integer.valueOf(portVal));
    }


    public void doListen(int port) {
        ServerSocket server;
        try {
            server = new ServerSocket(port);
            while (true) {
                Socket client = server.accept();
                new Thread(new SSocket(client)).start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }


    }


    class SSocket implements Runnable {
        private Socket client;
        public SSocket(Socket client) {
            this.client = client;
        }


        public void run() {
            DataInputStream input=null;
            DataOutputStream output=null;
            try {
                input = new DataInputStream(client.getInputStream());
                output = new DataOutputStream(client.getOutputStream());
                String read = input.readUTF();
                output.writeUTF("Recive:  One" + read + "    \r\n");
                logger.info("Recive:   " + read);
                read = input.readUTF();
                output.writeUTF("Recive Second:  " + read + "    \r\n");
                logger.info("Recive:   " + read);

            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    input.close();
                    output.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if(client!=null){
                    try{
                        client.close();
                    }catch (Exception ee){
                        ee.printStackTrace();
                    }
                }
            }
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值