zoukankan      html  css  js  c++  java
  • 37.2 net-- tcp传输 ServerSocket、Socket

    一、打开server端

    package day35_net_网络编程.tcp传输;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /*
     * 使用TCP协议接收数据
             创建接收端Socket对象
             监听(阻塞)
             获取输入流对象
             获取数据
             输出数据
             释放资源
    
         ServerSocket:接收端,服务端Socket
         ServerSocket(int port)
         Socket accept()
    
     */
    public class ServerDemo {
        public static void main(String[] args) throws IOException {
            //创建接收端Socket对象。ServerSocket(int port)  创建绑定到特定端口的服务器套接字。
            ServerSocket ss = new ServerSocket(8888);
    
            //监听(阻塞)。Socket accept()  侦听并接受到此套接字的连接。 使用socket去读写数据。
            Socket s = ss.accept();
    
            //获取输入流对象
            InputStream is = s.getInputStream();
            //获取数据
            byte[] bts = new byte[1024];
            int len;//存储读取到的字节数组个数
            len = is.read(bts);//参看io流copy数组
            String str = new String(bts,0,len);
    
            //输出数据
            System.out.println(s.getInetAddress().getHostName() + "---" + str);
            //释放资源
            s.close();
    //        ss.close();//服务端一般不会关闭。等待客户端的信号
        }
    }

    二、client端发送数据

    package day35_net_网络编程.tcp传输;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    /*
     * 使用TCP协议发送数据
            创建发送端Socket对象(创建连接)
            获取输出流对象
            发送数据
            释放资源
    
        Socket(InetAddress address, int port)
        Exception in thread "main" java.net.ConnectException: Connection refused: connect
    
     */
    public class ClientDemo {
        public static void main(String[] args) throws IOException {
            //创建clink端socket对象。Socket(InetAddress address, int port) 创建一个流套接字指定目的端ip、端口。
            Socket s = new Socket(InetAddress.getByName("MININT-79LU01A"),8888);//使用本地主机名
    
            //获取输出流对象
            OutputStream os = s.getOutputStream();
    
            //发送数据
            os.write("hello,tcp 9999".getBytes());
    
            //释放资源
    //        os.close();//对象流可以不释放由socket去释放
            s.close();
        }
    }

    三、输出

  • 相关阅读:
    对技术的研究就是对世界的理解
    程序员的方向
    程序员的分类
    设置tomcat的catalina_home引发的问题
    关于用osgModeling批量生成管道
    Cocos2d-X学习之Ref类
    ApiDemos示例学习(2)——App->Activity->Animation
    ApiDemos示例学习(1)——ApiDemos示例的导入
    eclipse中调出android sdk manager和android virtual device manager图标
    Mono For Android中AlarmManager的使用
  • 原文地址:https://www.cnblogs.com/longesang/p/11375628.html
Copyright © 2011-2022 走看看