在JAVA网络编程中,分客户端与服务器端,客户端一般用socket创建,服务器端用serversocket创建
数据传输用的还是IO流,所以,我们发现它们抛出的异常父类也是IO父类
下面,先看客户端代码:
public static void main(String[] args)throws IOException {
// 要链接的服务器地址与端口
Socket socket = new Socket("127.0.0.1",8899);
// 创建字节IO流输出
OutputStream out = socket.getOutputStream();
// 发送到服务器
out.write("测试服务器".getBytes());
// 接收服务器数据IO流
InputStream in =socket.getInputStream();
byte[] b = new byte[1024];
int len = in.read(b);
System.out.println(new String(b,0,len));
socket.close();
Socket socket = new Socket("127.0.0.1",8899);
这一句,我们就连接服务器了,剩下是输入输出数据
好,接下来我们看服务器端
public static void main(String[] args)throws IOException {
ServerSocket server = new ServerSocket(8899);
// 类似绑定客户端,让服务器知道接收的是谁的数据与把数据发送给谁
Socket socket = server.accept();
InputStream in = socket.getInputStream();
byte[] b = new byte[1024];
// 读取客户端数据
int len = in.read(b);
System.out.println(new String(b,0,len));
// 发送数据到客户端
OutputStream out = socket.getOutputStream();
out.write("收到数据,服务器连接成功!".getBytes());
socket.close();
server.close();
}
这里,我们接收客户端数据,还发送了一条数据给客户端,需要注意的就是数据都是字节流,所以字符串注意转换。