Socket编程

/*姓名 : 赵康乐

职业 : 学生

日期 : 2022-06-10

任务 : 实现客户端与服务的的交互

*/

服务端

package Computer;
import java.util.Scanner;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TestServerSocket{
    public static void main(String[] args) {
        try{
            InputStream in = null;
            OutputStream out = null;
            DataOutputStream dos = null;
            DataInputStream dis = null;
            String msg = null;
            Scanner input = new Scanner(System.in);
            ServerSocket s = new ServerSocket(8889);
            while(true){
                Socket socket = s.accept();
                out = socket.getOutputStream();
                dos = new DataOutputStream(out);
                in = socket.getInputStream();
                dis = new DataInputStream(in);
                while(true){
                    System.out.println("请输入服务端发送的内容: ");
                    msg = input.nextLine();
                    dos.writeUTF(msg);
                    System.out.println("服务器发送完成");
                    msg = dis.readUTF();
                    if(msg.isEmpty()){
                        System.out.println("程序结束运行");
                        socket.close();
                        break;
                    }
                    System.out.println(msg);
                }
                dos.close();
                dis.close();
                input.close();
            }
        }catch(IOException e){
            System.out.println("程序结束运行");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
客户端
package Computer;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.*;
import java.util.Scanner;
public class TestSocket{
    public static void main(String[] args) {
        InputStream in = null;
        OutputStream out = null;
        DataInputStream dis = null;
        DataOutputStream dos = null;
        String msg = null;
        Scanner input = new Scanner(System.in);
        try{
            InetAddress myID = InetAddress.getLocalHost();
            Socket socket = new Socket(myID.getHostAddress(), 8889);
            in = socket.getInputStream();
            out = socket.getOutputStream();
            dis = new DataInputStream(in);
            dos = new DataOutputStream(out);
            while(true){
            System.out.println("正在接收服务端发来的信息......");
            System.out.println(dis.readUTF());
            System.out.println("接收完成");
            System.out.println("请输入你要发送的信息 (输入e结束程序)");
            msg = input.nextLine();
            if(msg.equals("e")){
                System.out.println("程序结束运行");
                socket.close();
                break;
            }else{
                dos.writeUTF(msg);
                System.out.println("信息发送成功");
            }
            }
            dis.close();
            dos.close();
            input.close();
        }catch(IOException e){
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
posted @ 2022-06-10 10:16  赵康乐  阅读(39)  评论(0)    收藏  举报