zoukankan      html  css  js  c++  java
  • Java-网络编程-TCP

    1、client端

    package cn.bruce.TCP;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    import java.util.Scanner;
    
    /*实现TCP客户端,连接到服务器,实现数据交换
     * 实现客户端程序的类:java.net.Socket
     * 构造方法:Socket(String host,int port)传递IP和端口
     * OutputStream getOutputStream()返回套接字的输出流-将数据输出,输出到服务器
     * InputStream getInputStream()返回套接字的输入流-从服务器端读取数据
     * 
     */
    public class TCPCLIENT {
        public static void main(String[] args) throws IOException, IOException {
            // 创建socket,连接服务器
            Socket s = new Socket("127.0.0.1", 8888);
            // 通过客户端的套接字对象Socket方法,获取字节输出流,将数据写向服务器
            OutputStream out = s.getOutputStream();
            // 服务服务器发回的数据
            InputStream in = s.getInputStream();
            Scanner scanner = new Scanner(System.in);
            byte[] data = new byte[1024];
            while (true)
            {
                out.write(scanner.nextLine().getBytes());//发送给服务器的数据
                System.out.println(new String(data, 0, in.read(data)));//打印接受服务器的数据
            }
    //        s.close();
        }
    }

    2、severs端

    package cn.bruce.TCP;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    
    /*实现TCP服务器,实现数据交换
     * 实现客户端程序的类:java.net.SeversSocket
     * 构造方法:Socket(int port)接收端口
     * 很重要的事情:必须获得客户端的套接字对象Socket   accept()
     * 
     * 
     */
    public class TCPSevers {
        public static void main(String[] args) throws IOException {
            // 创建服务器对象
            ServerSocket ss = new ServerSocket(8888);
            // 调用accept()方法,获取客户端套接字对象
            Socket s = ss.accept();
            // 通过套接字对象,socket获取字节
            InputStream in = s.getInputStream();
            // 服务器向客户端回数据,字节输出流,通过客户端套接字对象获取字节输出流
            OutputStream out = s.getOutputStream();
            byte[] data = new byte[1024];
            Scanner scanner = new Scanner(System.in);
            while (true)
            {
                int len = in.read(data);// 取得数据长度
                System.out.println(new String(data, 0, len));//打印来自客户端的信息
                out.write(scanner.nextLine().getBytes());//发送数据给客户端
            }
        }
        //s.close();关闭后面可以用try改进
    }

  • 相关阅读:
    Problem S: 分数类的模板数组类
    Problem E: 向量的运算
    Problem D: 强悍的矩阵运算来了
    Problem C: Person类与Student类的关系
    Problem B: 还会用继承吗?
    Problem A: 求个最大值
    Problem B: 数组类(II)
    树的直径题集
    LCA题集
    线段树总结
  • 原文地址:https://www.cnblogs.com/BruceKing/p/13786323.html
Copyright © 2011-2022 走看看