• 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改进
    }

  • 相关阅读:
    (转载)Android content provider基础与使用
    如何解决Android的SDK与ADT不匹配问题
    Android 中断线程的处理
    用AsyncTask 来实现下载图片在android开发中
    开源自己的一个小android项目(美女撕衣服游戏)
    实现在Android开发中的Splash Screen开场屏的效果
    支持在安卓中UI(View)的刷新功能
    android从资源文件中读取文件流显示
    后缀数组 模板题 hdu1403(最长公共(连续)子串)
    Codeforces Round #383 (Div. 1) C(二分图)
  • 原文地址:https://www.cnblogs.com/BruceKing/p/13786323.html
Copyright © 2020-2023  润新知