美文网首页
Socket 编程 (网络篇)

Socket 编程 (网络篇)

作者: x曦月y | 来源:发表于2016-07-30 17:36 被阅读12次

    Socket (ip,port)任何台机两个要连在一起需要 ip和port ( 端口 监听)。只要port相同。
    一台机器有几个程序,每个程序需要一个端口,传递接受包。网站的端口80。
    ServerSocket ( port )服务器打开。
    如果Socket s1发出消息,accept ( ) 接受以后创建Socket s2与之对应。
    Socket s2 = accept ;
    Socket的两个类,InputStream(输入),OutputStream(输出).

    package Server;
    //控制台找ip:ipconfig
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    
    public class Server {
    
        public static int port=3000;
        public static final String ip="192.168.31.146";
        public static void main(String[] args) {
    //      System.out.println("开始"+port+"连上启动服务器。。。");
            
            try{
                ServerSocket ss = new ServerSocket(port);//创建Socket 传入值。
                System.out.println("成功启动服务器,端口:"+port);
                Socket socket = ss.accept();//打开服务器。接受数据,返回socket
                System.out.println("连上客户端。。。");
                
                BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));//写数据
                BufferedWriter output = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));//出数据
                
                String clientMsg;//发送的数据
                String serverMsg;//接受的数据
                
                Scanner sc = new Scanner(System.in);
                clientMsg = input.readLine();
                
                while(clientMsg !="bye"){
                    System.out.println(clientMsg);
    
                    serverMsg = sc.nextLine();//等待发消息
                    output.write(serverMsg+"\r\n");
                    output.flush();//发送
                    
                    clientMsg = input.readLine();
                }
                sc.close();
                ss.close();//socket端口关闭
                
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    
    }
    
    
    package Server;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.Socket;
    import java.util.Scanner;
    
    public class Client {
        //s.getInputStream(字节)->InputStreamReader(字符)->Buffered(句子,可以定时发送。)客户端也可使用,取决于需求。
        public static int port=3006;
        public static final String ip="192.168.31.146";//连接其他的客户端。
        
        public static void main(String[] args) {
            
            try{
                Socket s = new Socket(ip,port);//创建Socket 传入值。
                System.out.println("连上服務器端。。。");
                BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));//放数据
                BufferedWriter output = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));//拿数据
                String clientMsg;//发送数据
                
                String serverMsg;//接受数据
                
                Scanner sc = new Scanner(System.in);
                clientMsg = sc.nextLine();
                
                while(clientMsg !="bye"){
                    output.write(clientMsg+"\r\n"); //"\r\n"换行
                    output.flush();//发送
                    
                    serverMsg = input.readLine();//等待发消息
                    System.out.println(serverMsg);//打印消息
                }
                sc.close();
                s.close();
                
            }catch(IOException e){
                e.printStackTrace();//
            }
    
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:Socket 编程 (网络篇)

          本文链接:https://www.haomeiwen.com/subject/qrltsttx.html