socket学习小结

最近一直都在练习socket编程,发现网上很多帖子给出的例子都比较简单,不知是我自己理解出问题了还是怎么的,在实践中遇到很多问题,现总结一下自己的体会:1.首先,socket只是提供一个数据交互的通道,socket对于传输的数据是不加辨识,一视同仁的。所以对于数据的解析,需要编程人员自己构建一个简单的协议来解析接收到的数据。(PS:网上很多帖子都是client向server发送一串
摘要由CSDN通过智能技术生成
最近一直都在练习socket编程,发现网上很多帖子给出的例子都比较简单,不知是我自己理解出问题了还是怎么的,在实践中遇到很多问题,现总结一下自己的体会:
1.首先,socket只是提供一个数据交互的通道,socket对于传输的数据是不加辨识,一视同仁的。所以对于数据的解析,需要编程人员自己构建一个简单的协议来解析接收到的数据。
(PS:网上很多帖子都是client向server发送一串字符,然后server打印出这串字符就over了,其实在实际应用中,这种模型太过于简单)
2.socket数据传输的实际过程:
http://blog.csdn.net/shanzhizi/article/details/7659108
这篇帖子可以让读者明白send/recv到底是如何运作的,而且你传输的数据在网络上是怎么传输的。
3.附上自己写的一个实例:
client连续向server发送十次独立的数据(可以看做是十个请求),server每接到一个请求,都需要向client做出答复。
socket.h:定义自己的结构

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <sys/un.h> #include <sys/select.h> #include <sys/poll.h> #include <string.h> #include <errno.h> #include "list.h" #define UNIX_DOMAIN "/tmp/UNIX.domain" #define CMD_1K 1024 typedef int sint32; typedef unsigned int uint32; typedef unsigned char uint8; typedef struct cmd_head { sint32 len; }cmd_head_t; typedef struct cmd_desc { cmd_head_t head; uint8 data[0]; }cmd_t; typedef struct data_node { list_t node; cmd_t *cmd; }data_t; cmd_t *cmd_init(sint32 size,sint32

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值