java socket一对多通信编程

本文介绍了Java中实现Socket一对多通信的基础概念和入门知识,包括TCP/IP协议、Socket的阻塞特性以及如何创建服务器端和客户端Socket。强调了使用多线程处理输入流和输出流的重要性,以实现并发收发数据。文中提供了简单的客户端和服务器端的Java代码示例,帮助读者理解Socket通信的工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先。我也是一个刚开始学java socket编程。
大家可以来借鉴一点入门级的经验。

先介绍一些基本常识。socket是基于TCP/IP协议的。通过IP协议找到目的主机,在通过TCP协议完成数据链路的联通。然后开始收发数据。(当然,个人理解。若有不对,敬请指正)
socket的输入流是阻塞式的。在没有接受到数据之前会阻塞线程。
在java中
新建一个服务器端socket:
ServerSocket serversocket = new ServerSocket(Port);//指定端口

新建一个客户端socket:
Socket socket = new Socket(“hostname”,PORT);//需要访问的主机IP和端口。

好啦。开始进入主题。
我理解中的socket 1.0:就像是半条水管。为什么说是半条呢?因为。客户端的soket必须要和服务器端的socket进行连接才能进行通信。
看起来是不是很有道理的样子。

然而实际上。在我理解中的socket 2.0是两根半条水管。“我擦,你TM刚刚不是说只有半条,现在尼玛两根半条又是什么鬼!!”。


淡定~~
socket分为输入流和输出流。有进有出嘛~~~进进出出。 吭吭。别想歪了。
socket的输入流和输出流,只有分工合作。才能互不影响。客户端的输入流负责接收服务端的输出流。服务端的输入流负责客户端的输入流。
这里就是说需要用到多线程。
当然如果不用多线程。也不是不可以通信。只不过由于socket的输入流是阻塞式的。他会阻塞线程。所以情况就是只能一发一收。做不到连续发,连续收。

好啦。最终完整版。我理解中的socket 3.0:客户端和服务器端 的socket通过指定IP和端口。进行连接。连接完成。进行收发 socket(数据)。这个socket中包含输入流和输出流。

还是不懂的话。我还是做个好人给你们贴上代码吧。
package Client;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
	pub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值