用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面试题及答案一
Jun 18 面试题
你所知道的集合类都有哪些?主要方法?
Dec 31 面试题
JSF如何进行表格处理及取值
Aug 06 面试题
枚举和一组预处理的#define有什么不同
Sep 21 面试题
数据库方面面试题
Apr 22 面试题
Oracle的内存结构(Memory structures)
Jun 10 面试题
请解释在new与override的区别
Oct 29 面试题
程序集与命名空间有什么不同
Jul 25 面试题
.NET初级开发工程师面试题(包括Javascript)
Aug 22 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Nov 24 面试题
J2EE模式面试题
Oct 11 面试题
国外的一些J2EE面试题一
Oct 13 面试题
写出一个方法实现冒泡排序
Jul 08 #面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 #面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
Nov 18 #面试题
递归计算如下递归函数的值(斐波拉契)
Feb 04 #面试题
写出二分查找算法的两种实现
May 13 #面试题
编写类String的构造函数、析构函数和赋值函数
May 29 #面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 #面试题
You might like
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
JavaScript中两种链式调用实现代码
2011/01/12 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
介绍一下write命令
2014/08/10 面试题
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js