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***addrClient.sin_addr******;
4 send***sockConn,sendBuf,strlen***sendBuf***+1,0***;
5 char recvBuf[50];
6 recv***sockConn,recvBuf,50,0***;
7 printf***"%s\n",recvBuf***;
8 closesocket***sockConn***;
第二部分 用户端
一、创建用户套接字***create***。
二、与远程服务器进行连接***connect***,如被接受则创建接收进程。
三、开始数据传输***send/receive***。
四、关闭套接字***closesocket***。
客户端代码
1 SOCKET sockClient=socket***AF_INET,SOCK_STREAM,0***;
2
3 SOCKADDR_IN addrSrv;
4 addrSrv.sin_addr.S_un.S_addr=inet_addr***"127.0.0.1"***;
5 addrSrv.sin_family=AF_INET;
6 addrSrv.sin_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***"%s\n",recvBuf***;
服务器端代码和客户端主要代码基本上都是上面的程序,
在应用的过程中有几点要根据自己的需求更改,
1、127.0.0.1是服务器端的IP地址,根据自己的IP段进行修改;
2、htons***6000***是端口号根据具体设定进行修改,我们PLC端口号用到是9600,这点我们需要修改成9600。
网上好多程序都是VC6写的,在参考过程中叶遇到了问题,程序LICK出现了如下错误
unresolved external symbol __imp__closesocket@4
解决办法:
这是由于VC库中没有加如 ws2_32.lib 所致。
解决方案一:程序代码中加入#pragma comment***lib, "Ws2_32.lib"***
解决方案二:在project\setting\link 中object/library modules加入 ws2_32.lib
这个是VC6的解决方案,我用的VS2008找了一下
上个图吧,VS2008里设置,工程属性-链接器-命令行-附加选项添加 ws2_32.lib就ok了。
编译通过后,服务器端,可以看到hello,
客户端,可以看到welcome 127.0.0.1 to here!