考试报名信息,太谷教育信息网欢迎您!
当前位置:首页 > > 考试 > > 计算机类 > 内容页

C语言socket编程的方法

2021-04-22 15:21:39计算机类访问手机版330

  C语言socket编程的方法

  socket编程的教材网上搜罗下还是很多的,思路基本上也是一样的,程序分两部分客户端和服务器端,下面是小编为大家搜索整理的`C语言socket编程的方法,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!

  第一部分 服务器端

  一、创建服务器套接字create。

  二、服务器套接字进行信息绑定bind,并开始监听连接listen。

  三、接受来自用户端的连接请求accept。

  四、开始数据传输send/receive。

  五、关闭套接字closesocket。

  socket接收、发送代码

  1 SOCKET sockConn=acceptsockSrv,SOCKADDR*&addrClient,&len;

  2 char sendBuf[50];

  3 sprintfsendBuf,"Welcome %s to here!",inet_ntoaaddrClient.sin_addr;

  4 sendsockConn,sendBuf,strlensendBuf+1,0;

  5 char recvBuf[50];

  6 recvsockConn,recvBuf,50,0;

  7 printf"%s\n",recvBuf;

  8 closesocketsockConn;

  第二部分 用户端

  一、创建用户套接字create。

  二、与远程服务器进行连接connect,如被接受则创建接收进程。

  三、开始数据传输send/receive。

  四、关闭套接字closesocket。

  客户端代码

  1 SOCKET sockClient=socketAF_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=htons6000;

  7 connectsockClient,SOCKADDR*&addrSrv,sizeofSOCKADDR;

  8 sendsockClient,"hello",strlen"hello"+1,0;

  9 char recvBuf[50];

  10 recvsockClient,recvBuf,50,0;

  11 printf"%s\n",recvBuf;

  服务器端代码和客户端主要代码基本上都是上面的程序,

  在应用的过程中有几点要根据自己的需求更改,

  1、127.0.0.1是服务器端的IP地址,根据自己的IP段进行修改;

  2、htons6000是端口号根据具体设定进行修改,我们PLC端口号用到是9600,这点我们需要修改成9600。

  网上好多程序都是VC6写的,在参考过程中叶遇到了问题,程序LICK出现了如下错误

  unresolved external symbol __imp__closesocket@4

  解决办法:

  这是由于VC库中没有加如 ws2_32.lib 所致。

  解决方案一:程序代码中加入#pragma commentlib, "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!