初学者 如有不对 望各位大佬指出
双向通信与单向通信基本相同 只需用io流即可 依旧是先运行服务端 在运行客户端
!!!完蛋了 我客户端没关闭流
服务端
package com.jiujiu.Text04;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class TextServer { //服务端
public static void main(String[] args) throws IOException {
System.out.println("我是服务端");
ServerSocket ss = new ServerSocket(8888); //定义一个服务端
Socket s = ss.accept(); //用s作为服务端接收
InputStream is = s.getInputStream(); //用is输入流输入s的数据
DataInputStream dis = new DataInputStream(is);
String str = dis.readUTF(); // 读取dis接收到的数据
System.out.println("打印s:" + s); //打印客户端发送的内容
System.out.println("打印is:" + is);
System.out.println("打印dis:" + dis);
System.out.println("打印str:" + str);
OutputStream os = s.getOutputStream(); //输出流 输出至客户端
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("你好客户端 我是服务端");
dos.close();
os.close();
dis.close();
is.close();
s.close();
ss.close();
}
}
客户端
package com.jiujiu.Text04;
import java.io.*;
import java.net.Socket;
public class TextClient {//客户端
public static void main(String[] args) throws IOException {
System.out.println("我是客户端");
Socket s = new Socket("192.168.0.184",8888); //前面为客户端ip地址:用命令框输入ipconfig获取 ipv4即为ip地址 后面为端口号
OutputStream os = s.getOutputStream(); //定义一个输出流
DataOutputStream dos = new DataOutputStream(os); //定义一个数据输出流
dos.writeUTF("你好服务器 我是客户端"); //向服务器发送的内容
InputStream ips = s.getInputStream();//用于接收来自服务端的东西
DataInputStream dis = new DataInputStream(ips);
String s1 = dis.readUTF();
System.out.println("这是来自服务端的内容:" + s1);
dos.close(); //关闭流
os.close();
s.close();
}
}