2021-09-06

网络编程之单向通信

单向通信主要的就是客户端对数据进行封装发送,服务器接收数据进行拆封,整个传输过程中需要获取到传输层的协议,这个时候是通过套接字Socket 获取的,看下图:

在这里插入图片描述
代码如下:
客户端:


```java
public static void main(String[] args) throws  Exception{
        //创建套接字,指定服务器 的Ip地址和端口
        Socket s = new Socket("192.168.0.103", 8888);
        //利用Output就可以向外发送数据了,
        OutputStream os = s.getOutputStream();
        //但是不能直接发送String类型的数据,所以我们又在外面套了一个处理流:DataOutputStream。
        DataOutputStream dos = new DataOutputStream(os);
        dos.writeUTF("你好");
        dos.close();
        os.close();
        s.close();

    }

服务器端:

  public static void main(String[] args) throws Exception{
        //创建套接字指定服务器端口
        ServerSocket ss= new ServerSocket(8888);
        Socket s = ss.accept();
        //等待接受客户端消息,什么时候接受到消息,什么时候再往下执行,accept返回的是一个socket,
        // 这个socket其实就是客户端的套接字,接受到这个socket之后,客户端与服务器的链接才算成功,才能真正的进行通信。

        InputStream is =  s.getInputStream();//操作流,读取客户端发来的数据
        DataInputStream dis = new DataInputStream(is);
        //因为客户端发来的是一个字符串类型的数据,所以用str接收。
        String str = dis.readUTF();
        System.out.println("从客户端接受到的数据为:"+str);
        //关闭流
        dis.close();
        is.close();
        s.close();
        ss.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值