qq代收服务器信息,IDEA实现简单微信QQ聊天(客户端发送消息,服务端接收,BIO)...

接下来代码实现

以下服务端 用来接收消息

public class WechatServer {

static byte[] bytes = new byte[1024];

public static void main(String[] args) {

try {

// 用于监听

ServerSocket serverSocket = new ServerSocket();

serverSocket.bind(new InetSocketAddress(8080));

while (true) {

System.out.println("wait conn ...");

// 阻塞 等待连接

Socket socket = serverSocket.accept();

System.out.println("conn success");

System.out.println("wait data...");

// 阻塞 read 读了多少字节 阻塞拿数据

int read = socket.getInputStream().read(bytes);

System.out.println("data success");

String content = new String(bytes);

System.out.println(content);

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

以下是客户端

在这里可以发送消息

public class Client {

public static void main(String[] args) {

try {

Socket socket = new Socket("127.0.0.1",8080);

Scanner scanner = new Scanner(System.in);

String txt = scanner.next();

socket.getOutputStream().write(txt.getBytes());

} catch (IOException e) {

e.printStackTrace();

}

}

}

首先, 启动服务端

f10168bb80e5a70cd8c9afe4d3c12418.png

输出wait conn… 等待连接

然后启动客户端

545284d31a85948d5694ae3a3db3874d.png

现在是等待输入状态,将想要发送给服务器的数据输入

b65aff64a596677af463fdc659dc93a5.png

发送结束,客户端停止,现在回去看服务端

d299d9a732eb6053ac61123e0e5e5e85.png

当启动客户端时,服务端输出conn success 连接成功, 然后等待数据 wait data

客户端发送数据, 接收输出 客户端发来的数据

然后继续等待连接

其实,这是bio ,同步阻塞:

在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,

然后在客户端启动Socket来对服务端进行通信, 默认情况下服务端需要对每个请求建立一堆线程等待请求,

而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,

如果有的话,客户端会线程会等待请求结束后才继续执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值