用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的面试题
May 06 面试题
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
May 24 面试题
华为c/c++笔试题
Jan 25 面试题
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
Jan 05 面试题
经典c++面试题五
Dec 17 面试题
.NET程序员的数据库面试题
Oct 10 面试题
do you have any Best Practice for testing
Jun 04 面试题
敏捷开发的主要原则都有哪些
Apr 26 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
May 20 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
Nov 18 面试题
Ruby如何定义一个类
Oct 08 面试题
一道Delphi上机题
Jun 04 面试题
写出一个方法实现冒泡排序
Jul 08 #面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 #面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
Nov 18 #面试题
递归计算如下递归函数的值(斐波拉契)
Feb 04 #面试题
写出二分查找算法的两种实现
May 13 #面试题
编写类String的构造函数、析构函数和赋值函数
May 29 #面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 #面试题
You might like
php 获取远程网页内容的函数
2009/09/08 PHP
php学习之 数组声明
2011/06/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
php中curl使用指南
2015/02/05 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
php实现微信支付之现金红包
2018/05/30 PHP
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
python递归计算N!的方法
2015/05/05 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
Django实现跨域请求过程详解
2019/07/25 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
党支部公开承诺书
2014/03/28 职场文书
班组长安全工作职责
2014/07/15 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
大学生个人总结范文
2015/02/15 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
回门宴新娘答谢词
2015/09/29 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
Python学习之os包使用教程详解
2022/03/21 Python
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
深入理解pytorch库的dockerfile
2022/06/10 Python