【机房收费】What is WinSock?
来源:互联网 发布:如何追妹子知乎 编辑:程序博客网 时间:2024/06/18 18:35
【背景】在开始机房收费之前,跑到数据库里面去看了看:
这是登录机房收费系统之后,自动获取的计算机名。
当时比较奇怪,它是怎么获取的
后来在网上寻找答案,可以使用代码实现,但是在寻找过程中发现了一个控件:WinSock
What?
WinSock控件对用户不可视,就像Timer控件一样,你引用之后,在操作界面是看不到的。
通过设置它的一些属性和调用方法,可以很容易的进行远程计算机并进行双向的数据交换。
How?
在弄清楚如何使用它之前,我们先来看看它都有哪儿些属性:
1,Protocol属性
通过Protocol属性可以设置WinSock控件连接远程计算机使用的协议。WinSock控件默认协议是TCP。
2,SocketHandle属性
返回当前socket连接的句柄,这是只读属性。
3,RemoteHostIP属性
返回远程计算机的IP地址。在客户端,当使用了控件的Connect方法后,远程计算机的IP地址就赋给了RemoteHostIP属性,但是服务器端,当ConnectRequest事件后,远程计算机的IP地址就赋给了这个属性。(有点儿懵逼对吧?其实我也不太懂。先放下不懂的,解决当前的)
4,ByteReceived属性
返回当前接收缓冲区的字节数
5,State属性
返回winsoc控件当前的状态
6,RemoteHost属性
远程机器名
7,LocalHostName
本地机器名(机房收费系统中,使用的就是这个属性)
WinSock控件的主要方法:
1,Bind方法
用Bind方法可以把一个端口号固定为本控件使用,使得别的应用程序不能再使用这个端口。
2,Listen方法
只在使用TCP协议时有用,将应用程序置于监听检测状态
3,Connect方法
当本地计算机希望和远程计算机建立连接时,就可以调用Connect方法
4,Accept方法
当服务器接收到客户端的连接请求后,服务器有权决定是否接受客户端的请求
5,SendData方法
当连接建立后,要发送数据就可以调用SendData方法,该方法只有一个参数,就是要发送的数据。
6,GetData方法
当本地计算机接收到远程计算机的数据时,数据存放在缓冲区中,要从缓冲区中取出数据,可以使用GetData方法。
它从缓冲区中取得最长为maxLen的数据,并以type类型存放在data中,GetData取得数据后,就把相应的缓冲区清空。
7,PeekData方法
和GetData方法类似,但PeekData在取得数据后并不把缓冲区清空。
WinSock控件主要事件:
1,ConnectRequest事件
当本地计算机接收到远程计算机发送的连接请求时,控件的ConnectRequest事件将会被触发
2,SendProgress事件
当一端的计算机正在向另一端的计算机发送数据时,SendProgress事件将被触发。SendProgress事件记录了当前状态下已发送的字节数和剩余字节数
3,SendComplete事件
当所有数据发送完成时,被触发
4,DataArrival事件
当建立连接后,接受到了新数据就会触发这个事件。
但是要注意的是,如果在接受到新数据前,缓冲区中非空,就不会触发这个事件
5,Error事件
在工作中发生任何错误都会触发这个事件。
Finally:
没想到,一个小小的WinSock控件,竟然有这么多的小知识点~
感谢您的阅读~
- 【机房收费】What is WinSock?
- 【机房】机房收费初步总揽
- 【机房】机房收费系统总览
- 机房收费系统总结
- 机房收费系统 信手拈来!!
- 机房收费系统API
- 机房收费系统讨论
- 机房收费系统
- 机房收费系统总结
- 机房收费系统测试报告
- 机房收费系统总结
- 机房收费系统总结
- 机房收费系统测试
- 机房收费系统总结
- 机房收费系统总结
- 机房收费系统收工
- 机房收费系统分析二
- 机房收费系统总结
- [Android]关于用户并发访问下载初步探讨
- 使用json-lib进行Java和JSON之间的转换
- kali,ubuntu, debain DNS 配置
- easyui combobox 加载数据默认选中
- python基础——并发编程
- 【机房收费】What is WinSock?
- Ajax+Servlet:ajax请求servlet后无法在servlet中进行请求转发和重定向问题的原因
- 网易2017春招[编程题]涂棋盘@Java
- opencv2.4.9移植迅为4412开发板文档
- PHP开发环境搭建--Windows
- 2017年香港家庭用品展览会会刊(参展商名录)
- 用Selenium登录到廖老师的python教程
- compareTo方法——比较布尔值
- 仿MIUI日历