随笔分类 - Linux 网络编程

摘要:① TCP是个流协议,它存在粘包问题 TCP是一个基于字节流的传输服务,"流"意味着TCP所传输的数据是没有边界的。这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的。TCP的发送方无法保证对等方每次接收到的是一个完整的数据包。主机A向主机B发送两个数据包,主机B的接收情况可能是 产生粘包 阅读全文
posted @ 2016-05-28 15:09 melonstreet 阅读(19662) 评论(4) 推荐(3) 编辑
摘要:SO_REUSEADDR选项 在上一篇文章的最后我们贴出了一个简单的C/S通信的例程。在该例程序中,使用"Ctrl+c"结束通信后,服务器是无法立即重启的,如果尝试重启服务器,将被告知: bind: Address already in use 原因在于服务器重新启动时需要绑定地址: 而这个时候网络 阅读全文
posted @ 2016-04-26 16:47 melonstreet 阅读(3022) 评论(0) 推荐(0) 编辑
摘要:在本篇文章中,先介绍一下Socket编程的一些API,然后利用这些API实现一个客户端 服务器模型的一个简单通信例程。该例子中,服务器接收到客户端的信息后,将信息重新发送给客户端。 socket()函数 socket()函数用于创建一个套接字。这就好像购买了一个电话。不过该电话还没有分配号码。 参数 阅读全文
posted @ 2016-04-25 21:14 melonstreet 阅读(1338) 评论(0) 推荐(2) 编辑
摘要: 1. 什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口。TCP/IP协议的底层部分已经被内核实现了,而应用层是用户需要实现的,这部分程序工作在用户空间。用户空间的程序需要通过套接字来访问内核网络协议栈。 套接口是全双工的通信,它不仅可以用于本机的进程间通信,还可以用于 阅读全文
posted @ 2016-04-24 11:46 melonstreet 阅读(1120) 评论(0) 推荐(1) 编辑