在这里插入代码片
package com.qf.demo01;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Test1Server {
public static void main(String[] args) {
/*
* B电脑:李小花的电脑
*
* 服务端:ip地址:192.168.1.100,port:9527
step1:创建ServerSocket,一个服务端的程序:
step2:等待客户端申请链接,accept()接收链接。——>Socket
step3:创建流:InputStream,OutputStream
step4:关闭链接,断开资源*/
//step1:创建ServerSocket,等待客户端链接。。
/*
* 创建ServerSocket,等待客户端链接,传递数据。。。
* 第一个参数:Test1Server.java该程序所占用的端口号
*/
ServerSocket server = null;
Socket socket = null;
InputStream inputStream = null;
try {
server = new ServerSocket(9528);//传入传出流文件可能会出现流异常所有会抓IOException
//9528端口是设置服务器接收流的网络端口。服务器的地址就是本机地址192.168.0.106
System.out.println("服务器网络端口已经打开等待客户端链入");
//step2:接收客户端的请求
socket = server.accept();//阻塞式:没有客户端链接,就等待。。
//获取远程访问服务器的客户端的IP地址和port端口
System.out.println("已有客户端链接:"+"客户端IP为:"+socket.getInetAddress()+"客户端链接的网络端口为:"+socket.getPort());
//step3:获取流
inputStream = socket.getInputStream();
byte[] bs = new byte[1024];
int len = 0;
读取对方发来的数据
len = inputStream.read(bs);
String msg = new String(bs,0,len);
System.out.println(msg);
} catch (IOException e) {
e.printStackTrace();
}finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
在这里插入代码片
package com.qf.demo01;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
/*
* A电脑:王二狗的电脑
*
* 客户端:ip地址:192.168.1.150,port:20000
step1:创建Socket,客户端的程序
申请链接服务器:(服务器的ip地址和port)
step2:创建流:InputStream,OutputStream
step3:关闭链接,断开资源
*/
public class Test1Client {
public static void main(String[] args) {
//1.step1,创建Socket,要链接服务器
/*
* 创建Socket对象,用于链接服务器B电脑
* 写清楚:B电脑的ip和port
* 第一个参数:服务器的ip地址
* 第二个参数:服务器的程序的port
*/
Socket client = null;
OutputStream outputStream = null;
try {
client = new Socket("192.168.0.106",9528);
System.out.println("客户端已经建立申请链接IP为192.168.0.106的服务器的端口为9528的程序");
//step2:获取流:OutputStraem
outputStream = client.getOutputStream();//向上转型
String msg = "第一次链接测试。";
outputStream.write(msg.getBytes());
} catch (IOException e) {
e.printStackTrace();
}finally {
if (client != null) {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
修改IP地址成你自己的IP。端口使用没有被占用的端口即可。另外一篇有时候会讲解链接原理。