最后更新:2022-07-17 09:46:39 手机定位技术交流文章
索克是什么?
在开发网络应用程序的时候,会遇到Socket这个概念。Socket是一个抽象概念,一个应用程序通过一个Socket来建立一个远程连接,而Socket内部通过TCP/IP协议把数据传输到网络。
索克、TCP和一些IP功能由操作系统提供,不同的编程语言只提供简单的调用操作系统包装,例如,Java提供的几个Socket相关的类就封装了操作系统提供的接口:ServerSocket类,Socket类。
为什么索克特需要网络通信?
因为仅仅通过IP地址进行通信是不够的,同一计算机同时运行多个网络应用程序。当操作系统抽象索克接口时,每个应用程序都必须与不同的接口相符,根据索克,可以正确地发送这些包到相应的应用程序。
一个接口包括一个IP地址和一个端口号码(range 0到65535),很容易理解索克为一个IP地址加上一个端口号码。端口号总是由操作系统指定,它是0到65535之间的一个数目,其中,1024以下的端口属于特权端口。需要管理员权限,任何用户应用程序都可以打开超过1024的终端。
当使用接口进行网络编程时,它是两个过程之间的网络通信。其中一个进程必须作为服务器端服务,它积极监控指定的端口,另一个过程必须是客户,它必须主动连接到服务器的IP地址和指定的端口,如果连接成功,服务器和客户端成功地建立了TCP连接,双方可以随时发送和接收数据。
因此当服务器和客户端之间成功建立索克连接时:
1.对于服务器端,其插座是指定的IP地址和指定的端口号码;
2、对客户端来说,它的Socket是它所在计算机的IP地址和一个由操作系统分配的随机端口号。
注:
TCP协议是一个可靠的、面向连接的协议,而TCP编程依赖于TCP协议来通过索克建立连接。
TCP编程实例:
TCP编程实现游戏角色选择
服务器端:
先创建一个List集合,用来存放人物角色,再创建一个Map集合,用来存放玩家与对应的人物角色<玩家,人物角色>。
然后创建一个ServerSocket对象,保持服务器运行的一段时间(真正的)死环。接受()方法接收客户端对象,返回一个插座对象。客户端发送的选择请求通过输入流获取.通过输出流返回字符到插座,并向客户端反馈。
在获取玩家姓名时,先判断是否为空,如果空白,显示“[获取角色失败,请输入正确的球员名称,”如果玩家的名字不重复,如果玩家的名字重复,"[玩家已经存在!】",最后确定该字符是否被分配到完成(列表设置是空的[当字符被选定时,这个字符将在列表设置中删除,避免角色分配重复) 如果角色分配完成,[角色分配完成,游戏开始~】"。
代码实现:
客户端:
首先创建一个索克对象。 通过扫描仪将服务器的IP地址和端口号码转换到对象中,并通过扫描仪输入玩家的名字;
根据字符中的字符数设置客户端周期的数目,以避免过多的周期。
然后请求通过输出流发送到索克对象,并反馈到服务器端,发送后调用 shutdownOutput()的方法暂时终止。
服务器接收请求后,字符发送 Socket对象,然后将其返回到客户端,后者通过输入流接收信息。
代码实现:
运行结果:

本文由 在线网速测试 整理编辑,转载请注明出处。