客户连接
// 1.创建Socket对象,指定要连接的服务器的ip地址和端口号
// 循环
// 2.通过Socket对象获得字节输出流
// 3.写出字符串数据
// 4.通过Socket对象获得字节输入流
// 5.读取服务器回写过来的字符串数据
// 6.释放资源
服务端
// 1.创建ServerSocket对象,指定服务器端口号
// 2.调用accept()方法接收客户端请求,建立连接,返回Socket对象(没有连接成功会一直阻塞)
// 3.通过返回Socket对象获得字节输入流
// 4.读取客户端写过来的字符串数据
// 5.打印输出
// 6.通过返回Socket对象获得字节输出流
// 7.写出字符串数据
// 8.释放资源
// socket.close();
// ss.close();
具体代码
客户端
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
public class Client {12
public static void main(String[] args) throws Exception {
// 1.创建Socket对象,指定要连接的服务器的ip地址和端口号
Socket socket = new Socket("127.0.0.1", 6666);
// 循环
while (true) {
// 2.通过Socket对象获得字节输出流
OutputStream os = socket.getOutputStream();
// 3.写出字符串数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入要对服务端说的悄悄话:");
String msg = sc.next();
os.write(msg.getBytes());// 写了一个byte数组
// 4.通过Socket对象获得字节输入流
InputStream is = socket.getInputStream();
// 5.读取服务器回写过来的字符串数据
byte[] bys = new byte[8192];
int len = is.read(bys);
System.out.println("服务器回写的数据:" + new String(bys, 0, len));
}
// 6.释放资源
// socket.close();
}
}
服务端
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Server {
public static void main(String[] args) throws Exception {
// 1.创建ServerSocket对象,指定服务器端口号
ServerSocket ss = new ServerSocket(6666);
// 2.调用accept()方法接收客户端请求,建立连接,返回Socket对象(没有连接成功会一直阻塞)
Socket socket = ss.accept();
while (true) {
// 3.通过返回Socket对象获得字节输入流
InputStream is = socket.getInputStream();
// 4.读取客户端写过来的字符串数据
byte[] bys = new byte[8192];
int len = is.read(bys);
// 5.打印输出
System.out.println("客户端发送过来的数据:" + new String(bys, 0, len));
// 6.通过返回Socket对象获得字节输出流
OutputStream os = socket.getOutputStream();
// 7.写出字符串数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入要对客户端说的悄悄话:");
String msg = sc.next();
os.write(msg.getBytes());
}
// 8.释放资源
// socket.close();
// ss.close();
}
}