c语言socket编程流程,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***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!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值