Socket通信实现服务器和客户端对话

广域网和局域网

介绍socket通信前我们先介绍一下广域网与局域网的概念。局域网简称LAN,是指在某一区域几台计算机组成的计算机组,局域网是封闭的,局域网经常采用共享信道,即共用同一条电缆。广域网简称WAN,是一种跨越大的,地域性的地区性网络集合广域网包含大大小小不同的子网,可以是局域网,也可以是小型的广域网。广域网为每个单元分配IP地址,局域网也会其单元分配IP地址,这两个IP地址互不干扰,一个对内,一个对外,局域网的IP只对其内部的计算机有效,它们可以通过IP相互访问。如果你把一台计算机连接到互联网,网络提供商则会为你分配一个外网的IP。由此可见,IP地址将是我们接下来介绍的socket通信需要用到的参数,这也是一个地址,来找到你要连接的计算机。在socket中我们除了用到IP还需要找到端口号,一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535,一台主机可以有不同服务,即通过端口号进行区分。总之,我们通过IP地址+端口号来找到特定计算机的特定服务。

什么是socket通信

socket通信及网络上的两个程序通过一个双向的通信连接实现数据交换,这个连接的一段称为一个socket,java中通过TCP握手协议(三次握手)为用户提供编程接口。所谓“三次握手”即对每次发送的数据量进行跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后撤消联系,并建立虚连接。java内部有相应的包,我们要学会如何去调用,接下来我们介绍一下怎么写一个简易的可以实现两个程序通过socket通信实现对话的程序。

socket通信程序实现

程序分为服务器和客户端两个部分
1、服务器:

public class Server {
   
	// IP
	// 端口号
	public static void main(String[] args) {
   
		try {
   
			ServerSocket serverSocket = new ServerSocket(9999); // 创建服务器
			System.out.println("服务器。。。。。。。。。。");
			Socket socket = serverSocket.accept(); // 处于阻塞,等待监听。每接受一个线程,生成一个新用户。
			InputStream in = socket.getInputStream
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值