socket编程实验SOCKET编程

socket编程实验  时间:2021-08-18  阅读:()

socket编程的原理呢?

(1)客户端

①建立客户端的Socket,确定要连接的服务器的主机名和端口。

②发送连接请求到服务器,并等待服务器的回馈信息。

③连接成功后,与服务器进行数据的交互。

④数据处理完毕后,关闭自身的Socket连接

(2)服务器端

①建立服务器端的Socket,开始侦听整个网络中的连接请求。

②当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的连接。

③当完成通信后,服务器关闭与客户端的Socket连接。

老师给了socket编程实验的client,server两个程序代码的实例,但是下载下来之后不懂怎么运行。

别用VC环境 = =VC的环境都十年前的东西了。

WINSOCK2是近4.5年才出来的。

要么你配置下个WinSock2.h,要么换个环境,要么就改下代码用winsock.h

SOCKET编程

#include <string.h> #include <winsock.h> #include <windows.h> #include <iostream.h> #ment (lib,"ws2_32.lib") int main (int argc, char *argv[]) { int iportFrom,iportTo; int testsocket; int iopenedport = 0; struct sockaddr_in target_addr; WSADATA wsaData; WORD wVersionRequested=MAKEWORD(1,1); if (argc <= 3) { cout << "使用格式 : " << argv[0] << " 主机IP地址 开始端口号 结束端口号 " << endl; exit(1); } if (atoi (argv[2]) > atoi (argv[3])) { cout << "错误!开始端口号必须小于结束端口号" << endl; exit(1); } else { if (WSAStartup (wVersionRequested , &wsaData) ) { cout << "连接socket库失败,请检查版本号是否为1.1 " << endl; exit(1); } iportFrom=atoi (argv[2]); iportTo=atoi (argv[3]); for (int i=iportFrom; i <= iportTo; i++) { cout << "正在建立socket................................" << endl; if ((testsocket=socket (AF_INET,SOCK_STREAM,0) ) == INVALID_SOCKET) { cout << "Socket建立失败!" << endl; exit(0); } target_addr.sin_family = AF_INET; target_addr.sin_port = htons(i); target_addr.sin_addr.s_addr = _addr (argv[1]); cout << "正在扫描端口:" << i << endl; if (connect (testsocket, (struct sockaddr *) &target_addr, sizeof(struct sockaddr)) == SOCKET_ERROR) cout << "端口" << i << "关闭!" << endl; else { iopenedport++; cout << "端口" << i << "开放 " << endl; } } cout << "目标主机" << argv[1] << "从" << iportFrom << "--" << iportTo << "共有" << iopenedport << "个端口开放" << endl; closesocket (testsocket); WSACleanup(); } return 0; } vc6.0 下 编译

亚州云-美国Care云服务器,618大带宽美国Care年付云活动服务器,采用KVM架构,支持3天免费无理由退款!

官方网站:点击访问亚州云活动官网活动方案:地区:美国CERA(联通)CPU:1核(可加)内存:1G(可加)硬盘:40G系统盘+20G数据盘架构:KVM流量:无限制带宽:100Mbps(可加)IPv4:1个价格:¥128/年(年付为4折)购买:直达订购链接测试IP:45.145.7.3Tips:不满意三天无理由退回充值账户!地区:枣庄电信高防防御:100GCPU:8核(可加)内存:4G(可加)硬盘:...

香港云服务器 1核 256M 19.9元/月 Mineserver Ltd

Mineserver(ASN142586|UK CompanyNumber 1351696),已经成立一年半。主营香港日本机房的VPS、物理服务器业务。Telegram群组: @mineserver1 | Discord群组: https://discord.gg/MTB8ww9GEA7折循环优惠:JP30(JPCN2宣布产品可以使用)8折循环优惠:CMI20(仅1024M以上套餐可以使用)9折循...

TmhHost暑假活动:高端线路VPS季付8折优惠,可选洛杉矶CN2 GIA/日本软银/香港三网CN2 GIA/韩国双向CN2等

tmhhost怎么样?tmhhost正在搞暑假大促销活动,全部是高端线路VPS,现在直接季付8折优惠,活动截止时间是8月31日。可选机房及线路有美国洛杉矶cn2 gia+200G高防、洛杉矶三网CN2 GIA、洛杉矶CERA机房CN2 GIA,日本软银(100M带宽)、香港BGP直连200M带宽、香港三网CN2 GIA、韩国双向CN2。点击进入:tmhhost官方网站地址tmhhost优惠码:Tm...

socket编程实验为你推荐
lazyloadjquery.pjax.js 应该怎么用?oracle11g下载如何安装oracle11g客户端php开发工具PHP开发工具IDE哪个好用,请推荐几个?谢谢qq实名注册QQ帐号怎么实名认证?逗号运算符在C语言中逗号运算符有什么用呢?rbooracle中rbo和cbo的区别cs躲猫猫CS GO怎么玩躲猫猫运行时错误1004excel 打开表格提示 运行是错误1004,本人不会用宏和VB,只是表格内数据显示不出来visio使用教程如何使用visio2013如何绘制UML图实数的定义什么是实数?实数的概念是什么
m3型虚拟主机 新网域名 河南vps 狗爹 搜狗抢票助手 牛人与腾讯客服对话 浙江独立 新天域互联 河南移动网 服务器是干什么用的 免费的asp空间 cdn网站加速 测速电信 国外免费云空间 云销售系统 电信主机托管 香港博客 防盗链 symantec easypanel 更多