TCP学习之建立一个简单的客户/服务器系统--回射系统
相关的资料可以参考Unix网络编程,这个只是修改版,不需要依赖任何文件,可以独立编译通过,而且是在两台不同的主机上进行的。
fggets和fputs这两个函数来自标准I/O函数库,writen和readline见my_unp.h头文件
//my_unp.h
#include
#include
#include
#...
分类:
其他好文 时间:
2014-11-04 17:22:37
阅读次数:
312
此配置实例亲测成功,共勉,有问题大家留言。环境:VMware 10 + unbuntu 14.04为了unix进行网络编程,编程第一个unix程序时遇到的问题,不能包含unp.h文件,这个感觉和apue.h差不多,不过这里需要编译源代码,为了以后方便,现在整理如下:主要有两点一是生成libunp.a...
分类:
Web程序 时间:
2014-11-03 23:47:58
阅读次数:
294
read和write
#include
ssize_t read(int fd, void *buf, size_t count);
ssize_t write(int fd, const void *buf, size_t count);
参数:
fd: 文件描述符
buf:数据缓冲区,用于保存要从fd读取或写入的数据
count:输入/写入的数据最大字节数。(实际读取或...
分类:
其他好文 时间:
2014-10-30 13:33:52
阅读次数:
238
一个连接的socket描述符的状态 : 写就绪(或非就绪)、读就绪(或非就绪)。 当socket函数对该socket描述符进行I/O操作,如从socket读数据,向socket写数据时, 如果该socket 处于非就绪状态,那么在默认情况下,不论是从socket,还是向socket写数据,那么...
分类:
其他好文 时间:
2014-09-04 13:10:59
阅读次数:
214
套接字地址结构: 每个协议簇都定义了它自己的套接字地址结构。 这些结构的名字都已 sockaddr_ 开头, 并对应每个协议簇的唯一后缀结束。IPv4套接字地址结构: 1 struct in_addr { 2 in_addr_t s_addr; // 32-...
分类:
其他好文 时间:
2014-09-01 13:51:43
阅读次数:
233
配置IP地址:通过命令行(ifconfig,ip):即时生效,重启失效通过配置文件:重启生效,或者通过/etc/init.d/networkrestart重读配置文件ifconfig:配置网络接口ifconfig显示当前激活的所有网卡信息[root@unp~]#ifconfigeth0Linkencap:EthernetHWaddr00:50:56:9F:22:36inetaddr:19..
分类:
系统相关 时间:
2014-08-30 11:23:59
阅读次数:
387
最初代码:
#include "unp.h"
int
main(int argc, char **argv)
{
int sockfd;
struct sockaddr_in servaddr;
if (argc != 2)
err_quit("usage: udpcli ");
//1.指明服务器的 IP 地址和端口
bzero(&servaddr, s...
分类:
其他好文 时间:
2014-08-25 22:56:15
阅读次数:
374
1.迭代 TCP 服务器总是在完全处理某个客户的请求后才转向下一个客户。
2.从进程控制角度看迭代服务器是最快的,因为它不执行进程控制。
/* include serv00 */
#include "unp.h"
int
main(int argc, char **argv)
{
int listenfd, connfd;
void sig_int(int), web...
分类:
其他好文 时间:
2014-08-25 22:55:34
阅读次数:
199
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.传统并发服务器调用 fork 派生一个子进程来处理每个客户
2.传统并发服务器的问题在于为每个客户现场 fork 一个子进程比较耗费 CPU 时间。
/* include serv01 */
#include "unp.h"
int
main(int argc,...
分类:
其他好文 时间:
2014-08-25 22:55:25
阅读次数:
202
/**
* TCP,使用非阻塞 connect
**/
#include "unp.h"
int
connect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec)
{
int flags, n, error;
socklen_t len;
fd_set rset, wset;
struct timeval tval;
//1.调用 fcntl 设置套接字为非阻塞
flags = Fcntl(sockfd, ...
分类:
其他好文 时间:
2014-08-24 23:57:13
阅读次数:
464