Tcp通信客户端的代码实现

 客户端写法和读取服务器端口的数据

import java.io.*;
import java.net.Socket;
import java.util.ArrayList;

public class FuXi3 {
    public FuXi3() throws IOException {
    }

    public static void main(String[] args) throws IOException {
        demo02();
        //demo01();

    }

    private static void demo02() throws IOException {
        //创建一个客户端对象socket,构造方法中绑定服务器ip地址和端口号
        Socket socket = new Socket("192.168.1.31",8888);
//        使用socket对象里面的getOutputStream方法来获取网络字节输出流OutputStream对象
        OutputStream outputStream = socket.getOutputStream();
//        使用网络字节输出流OutputStream中的write来向服务器发送数据
        outputStream.write("你好".getBytes());
//        释放资源
//如果没有服务器进行三次握手回应那么会抛出此异常ConnectException  表示服务器无响应
        InputStream inputStream = socket.getInputStream();//创建服务器与客服端之间的输入流对象
        byte[] a2 = new byte[1024];//创建数组
        int read = inputStream.read(a2);//一次读取全部数据返回读取到的有效个数
        System.out.println(new String(a2,0,read));//打印读到的有效数据
        inputStream.close();//释放资源
       outputStream.close();
        socket.close();
    }
}











 服务器端口的写法 

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class FuXi4{
    public static void main(String[] args) throws IOException {
        ServerSocket a = new ServerSocket(8888);//创建服务器对象,绑定端口
        Socket accept = a.accept();//接受链接accept方法,返回Socket对象
        InputStream inputStream = accept.getInputStream();//从获取到的对象中调用输入流
        byte[] bytes = new byte[1024];//创建byte数组
        int read = inputStream.read(bytes);//一次性把客户端的数据都读写进来
        System.out.println(new String(bytes,0,read));//打印读写到到的数据

        OutputStream outputStream = accept.getOutputStream();//调用socket里的输入流
        outputStream.write("收到了谢谢".getBytes());//回写数据
        outputStream.close();//释放资源
        accept.close();//释放资源
        a.close();//释放资源
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值