题目
使用TCP协议来进行客户端与服务端之间的通信
分析
TCP协议需要建立连接,因此在创建客户端对象的时候,应该传入ip的值
先开启服务器,之后再开启客户端,否则将会报错。
详细步骤在代码中已经注释。
程序代码
服务器
package com.company.deno;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class server {
public static void main(String[] args) throws IOException {
//创建TCP通讯协议服务器端对象
ServerSocket ss = new ServerSocket(8888);
//监听客户端,阻塞式方法
System.out.println("服务器已开启,等待连接...");
Socket sk = ss.accept();
//获取输入流对象
InputStream in = sk.getInputStream();
//读取数据
byte[] bytes = new byte[1024];
int len = in.read(bytes);
String message = new String(bytes, 0, len);
//获取IP地址
String ip = sk.getInetAddress().getHostAddress();
System.out.println("ip: " + ip + '\n' + "消息" + message);
//释放资源
sk.close();
}
}
客户端
package com.company.deno;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
public class client {
public static void main(String[] args) throws IOException {
//创建TCP协议客户端对象
Socket sk = new Socket("192.168.145.1", 8888);
//获取输出流对象
OutputStream out = sk.getOutputStream();
Scanner sc = new Scanner(System.in);
System.out.println("请输入消息:");
String str = sc.nextLine();
//写数据
out.write(str.getBytes());
//释放资源
sk.close();
}
}