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

面试题 相关文章推荐
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
Oct 05 面试题
怎样在程序里获得一个空指针
Jan 24 面试题
2019史上最全Database工程师题库
Dec 06 面试题
如何在.net Winform里面显示PDF文档
Sep 11 面试题
Linux常见面试题
Oct 04 面试题
外企测试工程师面试题
Feb 01 面试题
比较一下entity bean和session bean
Dec 27 面试题
EJB的几种类型
Aug 15 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
Java的类可以定义为Protected或者Private得吗
Sep 25 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
Apr 24 面试题
Java面试题冲刺第十七天--基础篇3
Aug 07 面试题
写出一个方法实现冒泡排序
Jul 08 #面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 #面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
Nov 18 #面试题
递归计算如下递归函数的值(斐波拉契)
Feb 04 #面试题
写出二分查找算法的两种实现
May 13 #面试题
编写类String的构造函数、析构函数和赋值函数
May 29 #面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 #面试题
You might like
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
php获取远程文件大小
2015/10/20 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
WAF的正确bypass
2017/01/05 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
常用python数据类型转换函数总结
2014/03/11 Python
python实现BackPropagation算法
2017/12/14 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
浅析Python中字符串的intern机制
2020/10/03 Python
浅析python实现动态规划背包问题
2020/12/31 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
偷看我的初中毕业鉴定
2014/01/29 职场文书
工程建设实施方案
2014/03/14 职场文书
冰雪公主观后感
2015/06/16 职场文书
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python
分享python函数常见关键字
2022/04/26 Python
nginx之内存池的实现
2022/06/28 Servers