用C或者C++语言实现SOCKET通信


Posted in 面试题 onFebruary 24, 2015
#include
#include
void main()
{
WORDwVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if( err != 0)
{
return;
}
if(LOBYTE( wsaData.wVersion ) != 1||
HIBYTE( wsaData.wVersion) != 1)
{
WSACleanup();
return;
}
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
listen(sockSrv,5);
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
while(1)
{
SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
char sendBuf[100];
sprint(sendBuf,”Welcome %s to http://www.sunxin.org“,
inet_ntoa(addrClient.sin_addr));
send(sockConn,sendBuf,strlen(sendBuf)+1,0);
char recvBuf[100];
recv(sockConn,recvBuf);
printf(“%s\n”,recvBuf);
closesocket(sockConn);
WSACleanup();
}
}
注:这是Server端;File->New->Win32 Console Application,工程名:TcpSrv;然后,File->New->C++ Source File,文件名:TcpSrv;在该工程的Setting的Link的Object/library modules项要加入ws2_32.lib
#include
#include
void main()
{
WORDwVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if( err != 0)
{
return;
}
if(LOBYTE( wsaData.wVersion ) != 1||
HIBYTE( wsaData.wVersion) != 1)
{
WSACleanup();
return;
}
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr(“127.0.0.1″);
addrSrv.sin_family=AF_INET;
addrSrv.sin_porthtons(6000);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
char recvBuf[100];
recv(sockClient,recvBuf,100,0);
printf(“%s\n”,recvBuf);
send(sockClient,”This is zhangsan”,strlen(“This is zhangsan”)+1,0);
closesocket(sockClient);
WSACleanup();
}
注:这是Client端;File->New->Win32 Console Application,工程名:TcpClient;然后,File->New->C++ Source File,文件名:TcpClient;同理,在该工程的Setting的Link的Object/library modules项要加入ws2_32.lib

Tags in this post...

面试题 相关文章推荐
介绍一下Java的安全机制
Jun 28 面试题
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
Jan 18 面试题
JAVA和C++区别都有哪些
Mar 30 面试题
怎么可以提高数据库查询数据的速度
Jun 28 面试题
商得四方公司面试题(gid+)
Apr 30 面试题
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
Aug 25 面试题
VLAN和VPN有什么区别?分别实现在OSI的第几层?
Dec 23 面试题
介绍一下gcc特性
Oct 31 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
Jun 05 面试题
什么是方法的重载
Jun 24 面试题
请介绍一下WSDL的文档结构
Mar 17 面试题
写出一个方法实现冒泡排序
Jul 08 #面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 #面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
Nov 18 #面试题
递归计算如下递归函数的值(斐波拉契)
Feb 04 #面试题
写出二分查找算法的两种实现
May 13 #面试题
编写类String的构造函数、析构函数和赋值函数
May 29 #面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 #面试题
You might like
比较全的PHP 会话(session 时间设定)使用入门代码
2008/06/05 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
javascript tips提示框组件实现代码
2010/11/19 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python多线程编程方式分析示例详解
2013/12/06 Python
python字符串的常用操作方法小结
2016/05/21 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
python的json包位置及用法总结
2020/06/21 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
python tqdm库的使用
2020/11/30 Python
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
DTD的含义以及作用
2014/01/26 面试题
实习教师自我鉴定
2013/12/12 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
飘柔洗发水广告词
2014/03/14 职场文书
高中学生期末评语
2014/04/25 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python