JAVA——62.信息的发送与接收

练习一、上节课补充,输出客户的ip地址
Server:

import java.net.*;
import java.io.IOException;

public class Server{
        private ServerSocket serverSocket;

        public Server(){
                try{
                        serverSocket=new ServerSocket(1056);//1056代表计算机的端口号,意味着这个服务器是在本机的1056端口提供服务
                        System.out.println("server started......");
                        Socket client=serverSocket.accept();
                       //监听客户端的连接。如果没有监听到客户端的连接,这个方法会暂停在这里,只有监听到客户端的连接,这个accept方法才会执行完毕
                        System.out.println("有客户连接上服务器,客户的ip地址是"+client.getLocalAddress().getHostAddress());
                }catch(IOException e){
                        e.printStackTrace();
                }
        }
        public static void main(String[] args){
                new Server();
        }
}

Client:

import java.net.*;
import java.io.IOException;

public class Client{
          private Socket clientSocket;

          public Client(){
                    try{
                       clientSocket=new Socket("127.0.0.1",1056);
                       //因为服务器就在本机,所以ip地址是127.0.0.1,端口号是1056;如果这句话成功执行,就意味着已经连到了服务器
                       System.out.println("客户端连接上服务器了");
                    }catch(IOException e){
                        e.printStackTrace();
                    }
          }

          public static void main(String[] args){
                    new Client();
          }
}

这里写图片描述
练习二、信息的发送与接受(客户端写的时候,服务器读;客户端读,服务器写;这必须是一来一回的。如果客户端与服务器端同时读或写时,通道被占用,就会出问题)
Server:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    private ServerSocket serverSocket;

    public Server(){
            try{
                    serverSocket=new ServerSocket(1056);//1056代表计算机的端口号,意味着这个服务器是在本机的1056端口提供服务
                    System.out.println("server started......");
                    Socket client=serverSocket.accept();
                   //监听客户端的连接。如果没有监听到客户端的连接,这个方法会暂停在这里,只有监听到客户端的连接,这个accept方法才会执行完毕
                    System.out.println("有客户连接上服务器,客户的ip地址是"+client.getLocalAddress().getHostAddress());
                    //2.接收客户端发过来的信息
                    InputStream is=client.getInputStream();
                    BufferedReader br=new BufferedReader(new InputStreamReader(is));
                    String info=br.readLine();
                    System.out.println("客户端发送过来的消息是"+info);

                    //3.服务器向客户端发送信息:i accept your information
                    OutputStream os=client.getOutputStream();
                    PrintStream ps=new PrintStream(os);
                    ps.println("i accept your information");
            }catch(IOException e){
                    e.printStackTrace();
            }
    }
    public static void main(String[] args){
            new Server();
    }
}

Client:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;

public class Client {
    private Socket clientSocket;

    public Client(){
              try{
                 clientSocket=new Socket("127.0.0.1",1056);
                 //因为服务器就在本机,所以ip地址是127.0.0.1,端口号是1056;如果这句话成功执行,就意味着已经连到了服务器
                 System.out.println("客户端连接上服务器了");
                 //1.客户端向服务器发送信息:hello,Server
                 OutputStream os=clientSocket.getOutputStream();
                 PrintStream ps= new PrintStream(os);
                 ps.println("hello server");
                 //4.客户端接收服务器端接收的信息
                 InputStream is=clientSocket.getInputStream();
                 BufferedReader br=new BufferedReader(new InputStreamReader(is));
                 String info=br.readLine();
                 System.out.println("服务器发送过来的消息是"+info);
              }catch(IOException e){
                  e.printStackTrace();
              }
    }

    public static void main(String[] args){
              new Client();
    }
}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zhaiyujia15195383763/article/details/81479425
今日推荐