博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hello Socket - 第一个Socket程序
阅读量:6374 次
发布时间:2019-06-23

本文共 2820 字,大约阅读时间需要 9 分钟。

1. 首先,要编写windows下socket程序,必须要加入Winsock支持

 

2. 服务端监听程序(Server.cpp)

#include
//包含头文件#include
#include
#pragma comment(lib,"WS2_32.lib") //显式连接套接字库int main() //主函数开始{ WSADATA data; //定义WSADATA结构体对象 WORD w=MAKEWORD(2,0); //定义版本号码 char sztext[]="Welcome\r\n"; //定义并初始化发送到客户端的字符数组 ::WSAStartup(w,&data); //初始化套接字库 SOCKET s,s1; //定义连接套接字和数据收发套接字句柄 s=::socket(AF_INET,SOCK_STREAM,0); //创建TCP套接字 sockaddr_in addr,addr2; //定义套接字地址结构 int n=sizeof(addr2); //获取套接字地址结构大小 addr.sin_family=AF_INET; //初始化地址结构 addr.sin_port=htons(75); addr.sin_addr.S_un.S_addr=INADDR_ANY; ::bind(s,(sockaddr*)&addr,sizeof(addr)); //绑定套接字 ::listen(s,5); //监听套接字 printf("Server Started\r\n"); //输出提示信息 while(true) { s1=::accept(s,(sockaddr*)&addr2,&n); //接受连接请求 if(s1!=NULL) { printf("%sConnected Successful!\r\n",inet_ntoa(addr2.sin_addr)); ::send(s1,sztext,sizeof(sztext),0); //向客户端发送字符数组 } ::closesocket(s); //关闭套接字句柄 ::closesocket(s1); ::WSACleanup(); //释放套接字库 if(getchar()) //如果有输入,则关闭程序 { return 0; //正常结束程序 } else { ::Sleep(100); //应用睡眠0.1秒 } }}

 

3. 客户端请求程序(Client.cpp)

#include
//包含头文件#include
#include
#pragma comment(lib,"WS2_32.lib") //显式连接套接字库int main() //主函数开始{ WSADATA data; //定义WSADATA结构体对象 WORD w=MAKEWORD(2,0); //定义版本号码 ::WSAStartup(w,&data); //初始化套接字库 SOCKET s; //定义连接套接字句柄 char sztext[10]={
0}; s=::socket(AF_INET,SOCK_STREAM,0); //创建TCP套接字 sockaddr_in addr; //定义套接字地址结构 addr.sin_family=AF_INET; //初始化地址结构 addr.sin_port=htons(75); addr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); printf("Client Started\r\n"); //输出提示信息 ::connect(s,(sockaddr*)&addr,sizeof(addr)); ::recv(s,sztext,sizeof(sztext),0); printf("%s\r\n",sztext); ::closesocket(s); //关闭套接字句柄 ::WSACleanup(); //释放套接字库 if(getchar()) //如果有输入,则关闭程序 { return 0; //正常结束程序 } else { ::Sleep(100); //程序睡眠 }}

 

转载地址:http://grjqa.baihongyu.com/

你可能感兴趣的文章
VC :模板类
查看>>
对C++中string类型的总结
查看>>
SharePoint的数据库性能需要注意的一点
查看>>
Oracle发布公共云Public Cloud
查看>>
表驱动
查看>>
eclipse高亮显示
查看>>
C#简单的面试题目(六)
查看>>
Shell 操作数据库
查看>>
C# UDP 网络聊天程序
查看>>
if lte IE if gte IE 浏览器兼容
查看>>
基于Lumisoft.NET组件和.NET API实现邮件发送功能的对比
查看>>
设置类UIColor使用colorWithRed定义颜色
查看>>
C#数据库访问技术之DATAREADER对象读取数据
查看>>
各种排序方法
查看>>
编译时程序透彻理解异常并合理使用异常
查看>>
控件服务器端服务器控件与客户端控件
查看>>
2013年5月18日星期六
查看>>
优化网站设计(三十):优化CSS sprites
查看>>
js 字符串操作函数集合
查看>>
悟透JavaScript
查看>>