用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...

面试题 相关文章推荐
PHP如何删除一个Cookie值
Nov 15 面试题
PHP面试题大全
Oct 16 面试题
解释一下抽象方法和抽象类
Aug 27 面试题
求网格中的黑点分布
Nov 06 面试题
C语言编程题
Mar 09 面试题
SQL Server数据库笔试题和答案
Feb 04 面试题
使用索引有什么好处
Jul 27 面试题
SQL里面IN比较快还是EXISTS比较快
Jul 19 面试题
北京RT科技有限公司.net工程师面试题
Feb 15 面试题
.NET面试10题
Feb 24 面试题
介绍一下JMS编程步骤
Sep 22 面试题
Java面向对象面试题
Dec 26 面试题
写出一个方法实现冒泡排序
Jul 08 #面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 #面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
Nov 18 #面试题
递归计算如下递归函数的值(斐波拉契)
Feb 04 #面试题
写出二分查找算法的两种实现
May 13 #面试题
编写类String的构造函数、析构函数和赋值函数
May 29 #面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 #面试题
You might like
PHP 全角转半角实现代码
2010/05/16 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
Python3中的json模块使用详解
2018/05/05 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
python 堆和优先队列的使用详解
2019/03/05 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
django中瀑布流写法实例代码
2019/10/14 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
贷款担保书
2015/01/20 职场文书
英语读书笔记
2015/07/02 职场文书
导游词之天津古文化街
2019/11/09 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js