TCP编程(实现客户端给服务器端发送消息)

核心步骤如下:

step1:服务器端指定一个端口号来建立socket连接

ServerSocket serverSocket=new ServerSocket(9999);

step2:(服务器端)一直监听这个端口有没有socket连接过来

    Socket socket=serverSocket.accept();

step3:客户端新建一个socket,传入服务端的地址和端口号,连接上服务端的端口

 Socket clientSocket=new Socket(serverIp,port);

step4;客户端发送消息,服务器端接收消息

step5:服务器端关闭流和socket

step6:客户端关闭流和socket

step7:先运行服务器端程序,再运行客户端程序

服务器端代码:

public class TcpServer
{
    public static void main(String[] args) throws IOException
    {
        //1:服务端指定一个端口号来创建socket
        ServerSocket serverSocket=new ServerSocket(9999);

        //2.等待客户端连接过来(一直在监听),这个socket和客户端建立连接的socket是同一个socket
        Socket socket=serverSocket.accept();


        //6.读取客户端的消息
        InputStream inputStream=socket.getInputStream();

        ByteArrayOutputStream  pipe=new ByteArrayOutputStream();
        byte[] buffer=new byte[1024];

        int len;

        while((len=inputStream.read(buffer))!=-1)
        {
            pipe.write(buffer,0,len);
        }
        System.out.println(pipe.toString());

        //7.关闭io流
        pipe.close();
        inputStream.close();

        //8.关闭socket
        socket.close();
        serverSocket.close();

     }
}

客户端代码:

public class TcpClient
{
    public static void main(String[] args) throws IOException
    {
        //3.拿到服务器的地址
        InetAddress serverIp=InetAddress.getByName("127.0.0.1");

        //4.拿到服务器的端口号
        int port=9999;

        //5.创建1个socket连接(传入ip和端口)
        Socket clientSocket=new Socket(serverIp,port);

        //6.用io流发送消息
        OutputStream outputStream= clientSocket.getOutputStream();
        outputStream.write("你好,欧阳水鸣".getBytes());


        //9.关闭流和socket
        outputStream.close();
        clientSocket.close();

    }
}

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值