zoukankan      html  css  js  c++  java
  • 套接字

    建立链接流程

    客户端:Socket socket1=new Socket("http://192.168.0.78",2016)

        前面的是服务器的ip地址,为了方便测试192.168.0.78即代表自己本机就是服务器,后面的服务器端口号,正常要使用1024~65535端口号

    服务器端:ServerSocket serverSocket1=new ServerSocket(2016)

        表明这个服务器端套接字的端口号服务的是2016

    然后     :Socket socket2=serverSocket1.accept()

        这个方法表明进程将会阻塞直到受到 链接

    受到链接的客户端和服务器端都可以用DataInputStream和DataOutputStream来互通数据啦(首先服务器端要先开

    DataInputStream in=new DataInputStream(socket1.getInputStream)

    DataOutputStream out=new DataOutputStream(socket1.getOutputStream)

    in.readUTF()

    out.writeUTF()

    客户端

    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.InputStream;
    import java.net.Socket;
    import java.net.URL;
    
    public class Test {
        public static void main(String args[]){
            String []mess={"hello1?","hello2","hello3"};
            DataInputStream in=null;
            DataOutputStream out=null;
            Socket socket1;
            try{
                socket1=new Socket("127.0.0.1",2016);
                in=new DataInputStream(socket1.getInputStream());
                out=new DataOutputStream(socket1.getOutputStream());
                for(int i=0;i<3;i++){
                    out.writeUTF(mess[i]);
                    String s=in.readUTF();
                    System.out.println(s);
                    Thread.sleep(1000);
                }
                
            }
            catch(Exception e){
                System.out.println("111");
                System.out.println(e.getMessage());
            }
        }
    }
    
    class ReadURL implements Runnable{
        private URL url;
        void seturl(URL a){
            url=a;
        }
        public void run(){
            try{
                InputStream in1=url.openStream();
                byte []b=new byte[1024];
                int n=-1;
                for(;(n=in1.read(b,0,1024))!=0;){
                    String s=new String(b,0,n);
                    System.out.print(s);
                }
            }
            catch(Exception e){
                System.out.println(e.getMessage());
            }
        }
    }
    View Code

    服务器端

    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class test2{
        public static void main(String args[]){
            String []mess={"ok1","ok2","ok3"};
            DataInputStream in=null;
            DataOutputStream out=null;
            ServerSocket serverSocket1;
            Socket socket1;
            try{
                serverSocket1=new ServerSocket(2016);
                socket1=serverSocket1.accept();
                in=new DataInputStream(socket1.getInputStream());
                out=new DataOutputStream(socket1.getOutputStream());
                
                for(int i=0;i<3;i++){
                    String s=in.readUTF();
                    System.out.println(s);
                    out.writeUTF(mess[i]);
                    Thread.sleep(1000);
                }
            }
            catch(Exception e){
                System.out.println(e.getMessage());
            }
        }
    }
    View Code
  • 相关阅读:
    wxpython仿写记事本
    HIVE提交command过程图
    SQL编辑器自动提醒实现
    hive.sh的内容分析
    Hive配置项的含义详解(5)
    比特币、莱特币来一发?
    引导孩子从“打针有点疼”开始
    For Wife
    我是真的爱你
    .net core 添加本地dll
  • 原文地址:https://www.cnblogs.com/vhyc/p/6092846.html
Copyright © 2011-2022 走看看