文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++socket编程原理
精品推荐
特别推荐
·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编程实现远程文件传输
·几个C#编程的小技巧
热点TOP10
·学生成绩管理系统实习
·C#编写的windows计算器-源代码
·socket编程原理
·飞机订票系统设计
·C/C++笔试、面试题目大汇总
·TCP/IP编程实现远程文件传输
·Visual C++ 实现数字化图像的分割
·C语言图形函数
·改编 的 C版 职工管理系统
·C语言的常用库函数使用方法分析及用途
·C#基础概念二十五问
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
·用C语言实现Ping程序功能
·C# GridView 排序及分页
·进程调度模拟程序
·Windows下C语言网络编程快速入门
·通讯录的源代码(用链表实现)
·DirectX游戏开发入门
·在Visual Studio.NET中使用Crystal Report(上)
·asp.net中调用javascript函数实现多功能日期控件示例

socket编程原理

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



SockMsg.WriteQueue[SockMsg.WriteNum++] = i;

}


if (FD_ISSET(Mysock.DaemonSock, &efds))

SockMsg.AcceptNum = -1; /* server socket error. */


for (i=0; i<64; i++) /* Error message */

{

if ((Mysock.Sockets[i] > 0) && (FD_ISSET(Mysock.Sockets[i], &efds)))

SockMsg.ExceptQueue[SockMsg.ExceptNum++] = i;

}

return(retcode);

}


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

/* Send a packet. If succeed return the number of send data, else return -1 */

{

int actlen;


if ((Sockno >= 64) (Sockno < 0) (Mysock.Sockets[Sockno] == 0))

return(0);


if ((actlen = send(Mysock.Sockets[Sockno], buf, len, 0)) < 0)

return(-1);

return(actlen);

}


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

/* Receive a packet. If succeed return the number of receive data, else if the connection

is shutdown by peer then return 0, otherwise return 0-errno */

{

int actlen;

if ((Sockno >= 64) (Sockno < 0) (Mysock.Sockets[Sockno] == 0))

return(0);

if ((actlen = recv(Mysock.Sockets[Sockno], buf, size, 0)) < 0)

return(0-errno);

return(actlen); /* actlen是接收的数据长度,如果为零,指示连接被对方关闭。*/

}


2.5.3 简单服务器程序示例
/* File Name: server.c */

/* 这是一个很简单的重复服务器程序,它初始化好被动套接字后,循环等待接收连接。如果接收到连接,它显示数据套接字序号和客户端的IP地址;如果数据套接字上有数据到来,它接收数据并显示该连接的数据套接字序号和接收到的字符串。*/

#include "tcpsock.h"

main(argc, argv)

int argc;

char **argv;

{

struct in_addr sin_addr;

int retcode, i;

char buf[32];
/* 对于服务器程序,它经常是处于无限循环状态,只有在用户主动kill该进程或系统关机时,它才结束。对于使用kill强行终止的服务器程序,由于主套接字没有关闭,资源没有主动释放,可能会给随后的服务器程序重新启动产生影响。因此,主动关闭主套接字是一个良好的变成习惯。下面的语句使程序在接收到SIGINT、SIGQUIT和SIGTERM等信号时先执行CloseMainSock()函数关闭主套接字,然后再结束程序。因此,在使用 kill强行终止服务器进程时,应该先使用kill -2 PID给服务器程序一个消息使其关闭主套接字,然后在用kill -9 PID强行结束该进程。*/

(void) signal(SIGINT, CloseMainSock);

(void) signal(SIGQUIT, CloseMainSock);

(void) signal(SIGTERM, CloseMainSock);


if ((retcode = InitPassiveSock("TestService")) < 0) {

printf("InitPassiveSock: error code = %d
", retcode);

exit(-1);

}


while (1) {

retcode = QuerySocketsMsg(); /* 查询网络消息 */

if (SockMsg.AcceptNum == 1) { /* 有外来连接等待接收?*/

retcode = AcceptConnection(&sin_addr);

printf("retcode = %d, IP = %s

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




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

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

socket编程原理 相关文章:
·Excel密码保护的解除方法与解除原理
·socket编程原理
·TCP/IP编程实现远程文件传输
·Windows黑客编程基础
·Telnet高级入侵攻略及原理
·QQ密码被盗之谜1:本地破解的奥秘原理和方法
·QQ密码本地破解的原理和方法
·asp.net程序中最常用的三十三种编程代码
·Visual C++ ADO数据库编程入门
·在 C++ Builder中利用串行通信控件编程
socket编程原理 相关软件:
·手机的原理与维修
·C++编程思想
·shell编程和unix命令
·精通.Net核心技术原理与构架
·同济大学-通信原理视频教程 wmv 68集,查看
·同济大学.现代通信原理与技术
·VC++编程100例
·vb编程与应用视频(1-5)
·Cgi编程傻瓜书
·ASP Web 编程实例教程(PDG)

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