网络编程
文章平均质量分 50
pengfoo
这个作者很懒,什么都没留下…
展开
-
socket编程
UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用"打开"获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文转载 2011-07-25 16:25:36 · 922 阅读 · 0 评论 -
UNIX网络编程学习(15)--使用单进程和select的TCP服务器程序
#include "unp.h"intmain(int argc, char ** argv){ int i,maxi,maxfd,listenfd,connfd,sockfd; int nready,client[FD_SETSIZE]; ssize_t n; fd_set rset,all原创 2012-04-02 11:38:02 · 1285 阅读 · 0 评论 -
UNIX网络编程学习(14)--使用select正确处理EOF的str_cli函数修订版
//select/strcliselect02.c#include "unp.h"voidstr_cli(FILE *fp,int sockfd){ int maxfdp1,stdineof; fd_set rset;// char sendline[MAXLINE],recvline[MAXLINE]; char原创 2012-04-01 19:32:38 · 1271 阅读 · 1 评论 -
UNIX网络编程学习(13)--使用select的str_cli函数的实现
//select/strcliselect01.c#include "unp.h"voidstr_cli(FILE *fp,int sockfd){ int maxfdp1; fd_set rset; char sendline[MAXLINE],recvline[MAXLINE]; FD_ZERO(&rset); f原创 2012-03-28 17:04:16 · 1781 阅读 · 0 评论 -
UNIX网络编程学习(10)续--处理accept返回EINTR错误的TCP服务器程序最终(正确)版本
tcpcliserv/tcpserv04.c#include "unp.h"intmain(int argc, char **argv){ int listenfd, connfd; pid_t childpid; socklen_t clilen; struct sockaddr_in cliaddr, servaddr; void原创 2012-04-02 10:44:16 · 1547 阅读 · 0 评论 -
UNIX网络编程学习(17)--检查套接字选项是否受支持并获取默认值
/* include checkopts1 *//* *INDENT-OFF* */#include "unp.h"#include /* for TCP_xxx defines */union val { int i_val; long l_val; struct linger linger_val; struct timeval t原创 2012-04-04 10:48:32 · 1084 阅读 · 0 评论 -
UNIX网络编程学习(3)--简单时间获取服务器程序
#include "unp.h"#include intmain(int argc, char **argv){ int listenfd, connfd; struct sockaddr_in servaddr; char buff[MAXLINE]; time_t ticks; listenfd = Socket(AF_INET,原创 2012-03-20 19:55:39 · 1199 阅读 · 0 评论 -
inet_pton在freeBSD中实现的源码+内核源码搜索网站
http://fxr.watson.org/fxr/source/libkern/inet_pton.c#L54http://lxr.linux.no/linux+v2.6.35.14/tools/perf/Makefile#L745 1 /* 2 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")原创 2012-03-22 19:11:39 · 4064 阅读 · 0 评论 -
UNIX网络编程学习(5)--只支持IPv4的inet_pton和inet_ntop的简化版本
inet_pton:#include #include #include #include #include #include /* Delete following line if your system's headers already DefinE this function prototype */int inet_aton(const c原创 2012-03-22 21:03:57 · 1252 阅读 · 0 评论 -
UNIX网络编程(6)--套接字地址结构、通用套接字地址结构
#include /**IPV4套接字地址结构**/struct in_addr{ in_addr s_addr;//32位IPV4地址,这是无符号整数,网络字节序};/*POSIX只关注sin_family,sin_port,sin_addr,所有网络套接字地质结构都至少16字节*/struct sockaddr_in{ uint8_t sin_len转载 2012-03-23 10:47:08 · 1623 阅读 · 0 评论 -
UNIX网络编程学习(18)--UDP回射(服务器+客户端)程序
服务器端: #include "unp.h"intmain(int argc, char **argv){ int sockfd; struct sockaddr_in cliaddr, servaddr; sockfd = Socket(AF_INET, SOCK_DGRAM, 0); bzero(&servaddr, sizeof(s原创 2012-05-10 21:31:46 · 1653 阅读 · 0 评论 -
linux下TCP socket编程初步(1)
Socket编程:结构:sockaddr_inSin_family 地址家族 AF_INET AF_INET6Sin_port 16位Sin_addr s_addr 32位 Server:socket,bind,listen,acceptClient:socket,connect另外,今天刚看到一篇博客中写的比较清楚,可以参考:http://blog.csdn.原创 2012-03-12 20:57:08 · 2272 阅读 · 0 评论 -
记录mini-task--代理邮件发收系统的开发过程(二)
今天,版本一出来了。第一张图是代理邮箱编辑页面,可以编辑自己的代理邮箱信息。 第二张图在第一张图上点击 去写邮件 后进入。之后,就可以编辑邮件内容,进而发送邮件了。其实,做任何一个软件产品都是不是简单的事,上面做的也只是最原始的。还有很多东西需要做:1.添加附件功能;2.多人发送功能,抄送功能;3.输入的校验格式问题。后面有时间研究下Javamail,继续推原创 2012-08-26 21:46:03 · 2055 阅读 · 0 评论 -
UNIX网络编程学习(16)--使用poll的TCP服务器程序
tcpcliserv/tcpservpoll01.c/* include fig01 */#include "unp.h"//#include /* for OPEN_MAX */#define OPEN_MAX 100//changed by me for in limits.h we failed to find OPEN_MAXintmain(int argc,原创 2012-04-02 16:31:43 · 1455 阅读 · 0 评论 -
Linux socket编程学习初步(5)--服务器多线程
服务器端: #include #include #include #include #include #include #include #include #include #define PORT 12345#define BACKLOG 5#define MAXDATASIZE 1000void process_cli(int connf原创 2012-03-16 11:34:17 · 1291 阅读 · 0 评论 -
Linux socket编程学习初步(3)--客户端向服务器请求文件
服务器端:#include #include #include //read,write#include #include #include #include #include //open#include #define SERVER_PORT 12345#define BUF_SIZE 4096 /* block transfer size原创 2012-03-14 20:23:34 · 1409 阅读 · 0 评论 -
教你如何配置NAT
一、 NAT简介 NAT的功能就是指将使用私有地址的网络与公用网络INTERNET相连,使用私有地址的内部网络通过NAT路由器发送数据时,私有地址将被转化为合法注册的IP地址从而可以与INTERNET上的其他主机进行通讯。 NAT路由器被置于内部网和INTERNET的转载 2011-10-06 16:20:48 · 3473 阅读 · 0 评论 -
C网络编程socket之connect函数
网络编程socket api存在一批核心接口,而这一批核心接口就是几个看似简单的函数,尽管实际上这些函数没有一个是简单。connect函数就是这些核心接口的一个函数,它完成主动连接的过程。 connect函数的功能是完成一个有连接协议的连接过程,对于TCP来说就是那个三路握手过程,它的函数原型:#include#includeint connect(int sockfd,转载 2011-10-24 12:35:20 · 11295 阅读 · 1 评论 -
C++各大有名库的介绍——网络通信
转自:http://blog.csdn.net/oanqoanq/article/details/71692914.1、ACE参考网站: http://www.cs.wustl.edu/~schmidt/ACE.htmlC++库的代表,超重量级的网络通信开发框架。ACE自适配通信环境(Adaptive Communication Environment)转载 2012-01-05 11:59:54 · 1308 阅读 · 0 评论 -
一个网络通信开发库源码
文章转载自:http://blog.csdn.net/visualwind/article/details/6088964一个网络通信开发库mnet,有兴趣的朋友可以下载看看。 封装了TCP和UDP的socket函数,封装了完成端口、WSAEventSelect、select等3种winsock I/O模型,并结合线程池+内存池模式,支持高并发。 使用的是visua转载 2012-01-05 20:52:11 · 1201 阅读 · 1 评论 -
UNIX 网络编程学习(7)--readn,writen,readline的实现
readn函数://lib/readn.c/* include readn */#include "unp.h"ssize_t /* Read "n" bytes from a descriptor. */readn(int fd, void *vptr, size_t n){ size_t nleft; ssize_t nread; char *原创 2012-03-23 12:25:37 · 4737 阅读 · 2 评论 -
UNIX网络编程学习(4)--值-结果参数
我们已经知道,当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递方式取决于结构的传递方向:从进程到内核,还是从内核到进程。1、从进程到内核传递套接口地址结构有3个函数:bind、connect和sendto,这3个函数的一个参数是指向套接口地址结构的指针,另一个是结构的整数大小,例如:struct sockaddr_转载 2012-03-21 20:26:30 · 921 阅读 · 0 评论 -
UNIX网络编程学习(8)--服务器端显示客户端的IP地址和端口号
#include "unp.h"#include intmain(int argc, char **argv){ int listenfd, connfd; socklen_t len; struct sockaddr_in servaddr,cliaddr; char buff[MAXLINE]; time_t ti原创 2012-03-25 12:40:12 · 2741 阅读 · 0 评论 -
UNIX网络编程(10)--TCP 回射服务器程序和客户程序
一个简单的回射服务器的步骤:1.客户端从标准输入读入一行文本,并写给服务器。2.服务器端从网络输入读入这行文本,并返回给客户3.客户端从网络输入读入这行反射文本,并显示在标准输出上。如图:服务器程序:#include "unp.h"intmain(int argc, char ** argv){ int listenfd,con原创 2012-03-25 18:19:36 · 1826 阅读 · 0 评论 -
UNIX网络编程学习(11)--分析TCP回射服务+客户程序:正常启动与正常终止
分析TCP回射服务+客户程序:启动服务器程序后,netstat -a,后终端出现:Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0原创 2012-03-26 10:26:37 · 1281 阅读 · 1 评论 -
UNIX网络编程学习(9)--getsockname和getpeername的用法及实例
getsockname和getpeername#include int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen);int getpeername(int sockfd, struct sockaddr *peeraddr, socklen_t *addrlen);返回:0—OK,-原创 2012-03-25 14:34:08 · 14856 阅读 · 1 评论 -
Linux socket编程学习初步(4)--服务器端多进程
服务器端:#include #include #include #include #include #include #include #include #define PORT 12345#define BACKLOG 5 //请求队列的最大长度#define MAXDATASIZE 1000void process_cli(int connf原创 2012-03-15 09:47:08 · 1395 阅读 · 0 评论 -
linux socket编程初步(2)
服务端代码:#include #include #include #include #include #include #include #include #include #define SERVER_PORT 12000#define BUF_SIZE 4096 /* block transfer size */#define SIZE 10原创 2012-03-14 17:04:16 · 1213 阅读 · 0 评论 -
UINX 网络编程学习(2)--简单的时间获取客户程序
#include "unp.h"#define SER_IP "127.0.0.1"int main(/*int argc, char **argv*/){ int sockfd, n; char recvline[MAXLINE + 1]; struct sockaddr_in servaddr;// if (argc != 2)// err_quit("us原创 2012-03-20 14:13:57 · 1769 阅读 · 4 评论