代码改变世界

随笔档案-2012年08月

基于TCP的C/S初级网络编程2

2012-08-06 20:40 by 捣乱小子, 1492 阅读, 收藏, 编辑
摘要: 导读本篇文章对http://www.daoluan.net/blog/?p=774中的“计算器”进行改进,与大家分享。上面那篇中的服务端属重复型,即一个时刻只处理一客户的请求,处理期间不搭理其他客户。此篇对上篇的“计算器”进行小小的改进——能够接受多个客户的请求。改进细则:独立bind,listen,accept,serve(即calc过程)功能模块;所有错误成功提示提取至各功能模块(函数)之外,错误/成功根据各函数的返回值判断(这更符合UNIX编程风范);客户的服务过程由产生的子进程负责。缺陷:由子进程来负责serve的部分。服务器主进程(父进程)不负责等待子进程结束,资源由内核回收(这一要 阅读全文

基于TCP的C/S初级网络编程1

2012-08-02 21:29 by 捣乱小子, 2651 阅读, 收藏, 编辑
摘要: 导读本篇实现C/S架构的“计算器”,与大家分享。看了会网络编程,便不自觉YY了下:实现一个简单的计算器,客户端给出简单的运算,服务端负责运算。这一小项目做起来很有意思,而且难度不大,所以推荐初学者试着去做做。下面分享在实现上述“计算器”的过程。简单的基于tcp协议的 C/S编程都离不开这几个函数:服务端:socket,bind,listen,accept,recv,send客户端:socket,connect,recv,send因为“计算器”还设计涉及客户端的阻塞(因为客户端提交了运算要求过后,服务端可能要等会才能回送计算结果,这时要求客户端阻塞等候),所以涉及select函数。select函 阅读全文