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

面试题 相关文章推荐
空指针到底是什么
Aug 07 面试题
struct和class的区别
Nov 20 面试题
Android interview questions
Dec 25 面试题
汇智创新科技发展有限公司
Dec 06 面试题
铭万公司.net面试题笔试题
Jul 20 面试题
某公司的.net工程师面试题笔试题
Nov 22 面试题
什么是跨站脚本攻击
Dec 11 面试题
南京某公司笔试题
Jan 27 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jul 11 面试题
如何利用cmp命令比较文件
Sep 23 面试题
Servlet都有哪些方法?主要作用是什么?
Mar 04 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
May 01 面试题
写出一个方法实现冒泡排序
Jul 08 #面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 #面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
Nov 18 #面试题
递归计算如下递归函数的值(斐波拉契)
Feb 04 #面试题
写出二分查找算法的两种实现
May 13 #面试题
编写类String的构造函数、析构函数和赋值函数
May 29 #面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 #面试题
You might like
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
简单了解JavaScript作用域
2020/07/31 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
详解python中eval函数的作用
2019/10/22 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
html5简介及新增功能介绍
2020/05/18 HTML / CSS
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
个人简历自我鉴定
2013/10/11 职场文书
优秀毕业大学生推荐信
2013/11/13 职场文书
合伙购房协议样本
2014/10/06 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
户外亲子活动总结
2015/05/08 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书
Python 语言实现六大查找算法
2021/06/30 Python
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
nginx中proxy_pass各种用法详解
2021/11/07 Servers
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python