文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++socket编程原理
精品推荐
特别推荐
·C语言编程易犯毛病集合
·C语言编程常见问题解答(目录)
·C#程序开发中的常用函数汇总
·C#数据库操作的三种经典用法
·C/C++笔试、面试题目大汇总
·Beej的网络socket编程指南
·socket编程原理
·C语言的常用库函数使用方法分析及用途
·在C语言中如何处理时间和日期
·C++设计模式之Singleton
·VC++动态链接库编程之MFC扩展 DLL
·TCP/IP网络重复型服务器通信软件的设计
·DirectX游戏开发入门
·经典与现代的结合:在MFC中集成RAD .NET框架
·Windows API-GDI入门基础知识详解(2)
·Visual C++ 入门精解
·C#基础概念二十五问
·用C#实现pdf文件的完整性验证
·成为嵌入式程序员应知道的0x10个问题
·TCP/IP编程实现远程文件传输
热点TOP10
·C#基础概念二十五问
·TCP/IP编程实现远程文件传输
·socket编程原理
·Beej的网络socket编程指南
·如何用C#编写文本编辑器
·C/C++笔试、面试题目大汇总
·c#的random shuffle
·C#编写的windows计算器-源代码
·改编 的 C版 职工管理系统
·C语言的常用库函数使用方法分析及用途
·C# GridView 排序及分页
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
·Visual C++ 实现数字化图像的分割
·C语言编程常见问题解答(目录)
·C语言图形函数
·扑克牌的发牌程序(用伪随机数实现)
·飞机订票系统设计
·用C#下的Raw Socket编程实现网络封包监视
·DirectX游戏开发入门
·Windows下C语言网络编程快速入门

socket编程原理

日期:2007年7月24日 作者: 查看:[大字体 中字体 小字体]


/* File Name: tcpsock.h */

/* 头文件包括socket程序经常用到的系统头文件(本例中给出的是SCO Unix下的头文件,其它版本的Unix的头文件可能略有不同),并定义了我们自己的两个数据结构及其实例变量,以及我们提供的函数说明。*/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include


typedef struct SocketsMsg{ /* 套接字消息结构 */

int AcceptNum; /* 指示是否有外来连接等待接收 */

int ReadNum; /* 有外来数据等待读取的连接数 */

int ReadQueue[32]; /* 有外来数据等待读取的连接队列 */

int WriteNum; /* 可以发送数据的连接数 */

int WriteQueue[32]; /* 可以发送数据的连接队列 */

int ExceptNum; /* 有例外的连接数 */

int ExceptQueue[32]; /* 有例外的连接队列 */

} SocketsMsg;


typedef struct Sockets { /* 套接字结构 */

int DaemonSock; /* 主套接字 */

int SockNum; /* 数据套接字数目 */

int Sockets[64]; /* 数据套接字数组 */

fd_set readfds, writefds, exceptfds; /* 要被检测的可读、可写、例外的套接字集合 */

int Port; /* 端口号 */

} Sockets;


Sockets Mysock; /* 全局变量 */

SocketsMsg SockMsg;


int InitSocketsStruct(char * servicename) ;

int InitPassiveSock(char * servicename) ;

void CloseMainSock();

int CreateConnection(struct in_addr *sin_addr);

int AcceptConnection(struct in_addr *IPaddr);

int CloseConnection(int Sockno);

int QuerySocketsMsg();

int SendPacket(int Sockno, void *buf, int len);

int RecvPacket(int Sockno, void *buf, int size);

2.5.2 函数源文件
/* File Name: tcpsock.c */

/* 本文件给出九个函数的源代码,其中部分地方给出中文注释 */

#include "tcpsock.h"


int InitSocketsStruct(char * servicename)

/* Initialize Sockets structure. If succeed then return 1, else return error code (<0) */

/* 此函数用于只需要主动套接字的客户程序,它用来获取服务信息。服务的定义

在/etc/services文件中 */

{

struct servent *servrec;

struct sockaddr_in serv_addr;


if ((servrec = getservbyname(servicename, "tcp")) == NULL) {

return(-1);

}

bzero((char *)&Mysock, sizeof(Sockets));

Mysock.Port = servrec->s_port; /* Service Port in Network Byte Order */

return(1);

}


int InitPassiveSock(char * servicename)

/* Initialize Passive Socket. If succeed then return 1, else return error code (<0) */

/* 此函数用于需要被动套接字的服务器程序,它除了获取服务信息外,还建立

一个被动套接字。*/

{

int mainsock, flag=1;

struct servent *servrec;

struct sockaddr_in serv_addr;


if ((servrec = getservbyname(servicename, "tcp")) == NULL) {

return(-1);

}

bzero((char *)&Mysock, sizeof(Sockets));

Mysock.Port = servrec->s_port; /* Service Port in Network Byte Order */


if((mainsock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {

return(-2);

}


bzero((char *)&serv_addr, sizeof(serv_addr));

serv_addr.sin_family = AF_INET;

上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 下一页 




上一篇:c++中函数重载的相关知识

下一篇:用BCB开发有身份认证功能的Email程序

socket编程原理 相关文章:
·6招教你准确揣摩他人心理
·人生哲理名言生活哲理短文
·改变一生的100句至理名言
·果然更高效!Vista磁盘碎片整理亲历记
·不再怕电脑病毒 电脑中毒后的6招处理方法
·轻松做画家!用Photoshop把照片处理成逼真的素描画
·人生哲理小语
·socket编程原理
·仅用U盘就可以去除XP管理员密码
·Photoshop将肖像照片处理为超酷个性海报
socket编程原理 相关软件:
·曾仕强 - 超世纪大易管理学(3-6)
·周恩来总理经典图片集
·时代光华 销售管理课程(1-5)
·公司企业网站管理系统模板功能强大版
·俞敏洪做人道理mp3
·国家地理杂志100张最佳照片合辑
·余世维《成功经理人讲座》完整电子书
·成就你一生的100个哲理
·时代光华-卓越的现场管理 5S推行实务(刘敏欣)(下)
·冠军足球经理4(Championship Manager 4)中文版

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn