C语言socket编程的方法
socket编程的教材网上搜罗下还是很多的,思路基本上也是一样的,程序分两部分客户端和服务器端,下面是小编为大家搜索整理的`C语言socket编程的方法,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!
第一部分 服务器端
一、创建服务器套接字(create)。
二、服务器套接字进行信息绑定(bind),并开始监听连接(listen)。
三、接受来自用户端的连接请求(accept)。
四、开始数据传输(send/receive)。
五、关闭套接字(closesocket)。
socket接收、发送代码
1 SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
2 char sendBuf[50];
3 sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(_addr));
4 send(sockConn,sendBuf,strlen(sendBuf)+1,0);
5 char recvBuf[50];
6 recv(sockConn,recvBuf,50,0);
7 printf("%sn",recvBuf);
8 closesocket(sockConn);
第二部分 用户端
一、创建用户套接字(create)。
二、与远程服务器进行连接(connect),如被接受则创建接收进程。
三、开始数据传输(send/receive)。
四、关闭套接字(closesocket)。
客户端代码
1 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
2
3 SOCKADDR_IN addrSrv;
4 _addr.S_un.S_addr=inet_addr("");
5 _family=AF_INET;
6 _port=htons(6000);
7 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
8 send(sockClient,"hello",strlen("hello")+1,0);
9 char recvBuf[50];
10 recv(sockClient,recvBuf,50,0);
11 printf("%sn",recvBuf);
服务器端代码和客户端主要代码基本上都是上面的程序,
在应用的过程中有几点要根据自己的需求更改,
1、是服务器端的IP地址,根据自己的IP段进行修改;
2、htons(6000)是端口号根据具体设定进行修改,我们PLC端口号用到是9600,这点我们需要修改成9600。
网上好多程序都是VC6写的,在参考过程中叶遇到了问题,程序LICK出现了如下错误
unresolved external symbol __imp__closesocket@4
解决办法:
这是由于VC库中没有加如 ws2_ 所致。
解决方案一:程序代码中加入#pragma comment(lib, "Ws2_")
解决方案二:在projectsettinglink 中object/library modules加入 ws2_
这个是VC6的解决方案,我用的VS2008找了一下
上个图吧,VS2008里设置,工程属性-链接器-命令行-附加选项添加 ws2_就ok了。
编译通过后,服务器端,可以看到hello,
客户端,可以看到welcome to here!
-
嵌入式C语言编程小知识
嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。下面为大家整理了一些嵌入式C语言编程小知识,一起来看看吧!1.流水线被指令填满时才能发挥最大效能即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要...
-
关于C语言精选模拟练习题
C语言是一个有结构化程序设计、具有变量作用域(variablescope)以及递归功能的过程式语言。下面是小编为大家整理的关于C语言精选模拟练习题,欢迎参考~5:请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用c语言提供的`求字符串长度的函数),函数返回较长...
-
Swift与C语言指针结合使用实例
引导语:Swift可与Object-C共同运行于MACOS和iOS平台,用于搭建基于苹果平台的应用程序。以下是本站小编分享给大家的Swift与C语言指针结合使用实例,欢迎阅读!####用以输入/输出的参数指针C和Objective-C并不支持多返回值,所以CocoaAPI中常常将指针作为一种在方法间...
-
基础C语言编程时易犯错误
C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,通过对C的学习,积累了一些C...