网路编程1

1.流式套接字
提供了一个面向连接,可靠的数据传输服务,数据无差错,无重复的发送,且按发送顺序接收,其实他对应使用的是TCP协议
2.数据报式套接字
面向无连接,数据报以独立包形式发送,不提供无差错保证,数据可能丢失或重复,并且接收顺序无序,其实他对应使用的是UDP协议
3.原始式套接字
该接口允许对较低层次协议,如IP直接访问。可以接收本机网卡上的数据帧或数据包,对监听网络流量和分析很有用


//1.使用字节流利用Socket实现服务端和客户端,客户端发送:服务端,小样
//服务端回复:客户端,大样  然后退出
public class Server {
    public static void main(String[] args) throws IOException {
//        Scanner scanner = new Scanner(System.in);
        //1、创建服务器serverSocket
        ServerSocket server = new ServerSocket(10086);
        //2、接收连接的客户端
        Socket client = server.accept();
        System.out.println("客户端:"+client.getInetAddress()+"连接上了");
        System.out.println("服务端已接收到连接的客户端...");
        //3、获取客户端对象的网络流
        InputStream inputStream = client.getInputStream();
        OutputStream outputStream = client.getOutputStream();
        int len=0;
        byte[] bytes = new byte[1024];
        while ((len= inputStream.read(bytes))!=-1){
            System.out.println("客户端说:"+new String(bytes,0,len));
        }
        outputStream.write("客户端,大样".getBytes());
        outputStream.flush();
//        System.out.println();
        //4、通过缓冲字符流从网络中读取数据
        outputStream.close();
        inputStream.close();
        client.close();
        server.close();
    }
}


public class Client {
    public static void main(String[] args) throws IOException {
        //1、创建客户端   192.168.2.210
        Socket client = new Socket("127.0.0.1",10086);
        //2、客户端发送数据到服务端,通过网络输出流发送数据到服务端
        OutputStream outputStream = client.getOutputStream();
        InputStream inputStream = client.getInputStream();
        //服务器先听后说
        outputStream.write("服务器,小样".getBytes());
        outputStream.flush();
        client.shutdownOutput();

        int len = 0;
        byte[] bytes = new byte[1024];
        while ((len = inputStream.read(bytes))!=-1){
            System.out.println("服务端回复:"+new String(bytes,0,len));
        }

        //3、开始发送数据
        System.out.println("客户端数据发送完毕...");


        inputStream.close();
        outputStream.close();
        client.close();
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值