上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 45 下一页

2010年12月25日

摘要: 在这上面花了一周多,先是思路上的致命错误,导致浪费较多时间,不过调整下很快的完成了自己所需要的代码。期间碰到的几个比较大的问题自己做下记录:1、bind函数的理解错误,这个一般是在服务端用来绑定端口,而我一直以为可以用函数inet_addr()指定接收的IP,其实这里只是假如你有双网卡的时候,有需要可以绑定其中一个IP,htonl(INADDR_ANY)或0最实在。贴下一段初始化的代码bzero(&socket_info.server_addr, sizeof(socket_info.server_addr)); socket_info.server_addr.sin_family = 阅读全文
posted @ 2010-12-25 22:18 yming0221 阅读(234) 评论(0) 推荐(0)
摘要: 什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的.. 阅读全文
posted @ 2010-12-25 22:15 yming0221 阅读(286) 评论(0) 推荐(0)
摘要: TCP协议: 服务器端:tcp_server.c #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { int s; int fd; int len; struct sockaddr_in my_addr; //服务器网络地址结构体 struct sockaddr_in remote_addr; 阅读全文
posted @ 2010-12-25 22:10 yming0221 阅读(124) 评论(0) 推荐(0)
摘要: 本文编的是echo服务器示例程序,当收到客户端的数据,服务器把数据不经加工地发送给客户。采用TCP连接,采用端口8080进行设计,在整个过程中主要涉及socket的通信。首先建立一个 socket,代码如下:int socketfd;socketfd = socket(AF_INET, SOCK_STREAM, 0);socket函数是我们写socket程序遇到的第一个函数,它在指定的协议上创建一个socket,它的函数说明如下所示:#includeint socket ( int AddressFamily, int Type, int Protocol)其中:AddressFamily参数 阅读全文
posted @ 2010-12-25 22:05 yming0221 阅读(459) 评论(0) 推荐(0)
摘要: 全文针对linux环境。tcp/udp两种server种,tcp相对较复杂也相对比较常用。本文就从tcp server开始讲起。先从基本说起,看一个单线程的网络模型,处理流程如下:socket-->bind-->listen-->[accept-->read-->write-->close]-->close[]中代码循环运行,[]外的是对监听socket的处理,[]内的是对accept返回的客户socket的处理。这些系统调用的参数以及需要的头文件等,只需要在linux下man就好。一、注意事项。(1)包裹宏使用。这些系统调用返回-1表示失败。检测系统 阅读全文
posted @ 2010-12-25 22:02 yming0221 阅读(214) 评论(0) 推荐(0)
摘要: 本章主要列举服务器程序的各种网络模型,示例程序以及性能对比后面再写。一、分类依据。服务器的网络模型分类主要依据以下几点(1)是否阻塞方式处理请求,是否多路复用,使用哪种多路复用函数(2)是否多线程,多线程间如何组织(3)是否多进程,多进程的切入点一般都是accept函数前二、分类。首先根据是否多路复用分为三大类:(1)阻塞式模型(2)多路复用模型(3)实时信号模型三、详细分类。1、阻塞式模型根据是否多线程分四类:(1)单线程处理。实现可以参见http://www.cppblog.com/CppExplore/archive/2008/03/14/44509.html后面的示例代码。(2)一个请 阅读全文
posted @ 2010-12-25 22:00 yming0221 阅读(163) 评论(0) 推荐(0)

2010年12月24日

摘要: 主Makefile:CURDIR:= $(shell pwd)include $(CURDIR)/config.mkSHARELIBS := uimmshare param comm globalMODULES := hdtst mntn bstall :for module in $(MODULES); do make -w -C $$module all; done//到子目录去执行里面的Makefile,这里与shell编程相结合了for module in $(MODULES); do make -w -C $$module ; doneshare :for module in $(S 阅读全文
posted @ 2010-12-24 13:51 yming0221 阅读(182) 评论(0) 推荐(0)

2010年12月23日

摘要: #include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<netdb.h>char *host_name="127.0.0.1";int port=7778;struct student{ char name[20]; char num[20]; float score;}t={"x 阅读全文
posted @ 2010-12-23 22:16 yming0221 阅读(131) 评论(0) 推荐(0)
摘要: GCC 命令行详解[转帖]1、gcc包含的c/c++编译器gcc、cc、c++、g++gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译2、gcc的基本用法gcc test.c这样将编译出一个名为a.out的程序gcc test.c -o test这样将编译出一个名为test的程序-o参数用来指定生成程序的名字3、为什么会出现undefined reference to 'xxxxx'错误?首先这是链接错误,不是编译错误,也就是说如果只有这个错误,说明你的程序源码本身没有问题,是你用编译器编译时参数用得不对,你没有指定链接程序要用到 阅读全文
posted @ 2010-12-23 21:54 yming0221 阅读(269) 评论(0) 推荐(0)
摘要: 本题就是求一个数是否能写成几个数的阶乘的和的形式,可以当作背包问题,也可以用DFS来解,下面用的贪心http://poj.org/problem?id=1775Sum of FactorialsTime Limit:1000MSMemory Limit:30000KDescriptionJohn von Neumann, b. Dec. 28, 1903, d. Feb. 8, 1957, was a Hungarian-American mathematician who made important contributions to the foundations of mathemati 阅读全文
posted @ 2010-12-23 13:38 yming0221 阅读(226) 评论(0) 推荐(0)
上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 45 下一页

导航