上海花千坊

C语言

C语言socket编程使用方法

时间:2024-06-20 23:41:03 C语言 我要投稿

C语言socket编程使用方法

   C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。以下是小编为大家搜索整理的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!

【C语言socket编程使用方法】上海花千坊相关的文章:

C语言socket编程使用方法简介04-01

C语言编程基础03-29

C语言入门什么是编程语言03-20

怎样学习c++c语言编程04-28

如何学习C语言编程11-27

C语言设置和取得socket状态的相关函数用法介绍04-01

C语言编程常犯错误小结03-17

C语言高效编程的4个小技巧12-09

初步剖析C语言编程中的结构体03-20