初识socket编程

**3.回过头再来理解socket**到目前为止,大致的了解了应用程序和tcp/ip协议的大致关系,我们只是知道socket编程实在tcp/ip上的网络编程,但是socket是在上述模型的什么位置呢,这个位置被一个天才的理论家或者是抽象的计算机大神提出并安排出来。

**关闭套接字──closesocket**closesocket关闭套接字s,并释放分配给该套接字的资源;如果s涉及一个打开的TCP连接,则该连接被释放。

**使用特殊标记处理(分隔符)**1.优势:扩展性强,适合任何场景。

**注意**:SOCK_DGRAM没有想象中的糟糕,不会频繁的丢失数据,数据错读只是小概率事件。

就目前而言,几乎所有的应用程序都是采用socket。

进程间通信技术有多种实现方案,如:共享内存、命名管道和匿名管道、发送消息、Socket通信等。

通讯时没有安全层。

根据这三个参数建立一个套接字,并将相应的资源分配给它,同时返回一个整型套接字号。

第一个版本规定用两个字节来表示所有字符,总计可以表示65535个字符,65535是2的16次方,所以常常会把Unicode编码等同于UTF-。

**指定本地地址──bind**当一个套接字用socket创建后,存在一个名字空间(地址族),但它没有被命名。

**群组即时通信**客户端用户要查询群组的信息,同时也需要把自己的消息服务器地址告诉群组消息服务器,这样就可以和群组中的人进行群聊。

缺陷:这种方式通常是在消息前面增加固定几个字节表示消息长度,所以通讯双方需要提前协商好消息长度占用的字节数,如4个字节。

s.fileno()|返回套接字的文件描述符。

实现方案在.NET/C中对Socket的支持都是基于WindowsI/OCompletionPort完成端口技术的封装,通过不同的Non-Blocking封装结构满足不同的编程需求。

socket()指定五元组中的协议元,它的用法与是否为客户或服务器、是否面向连接无关。

IOCP对象内部的消息队列,用于存放IOCP所关联的I/O服务请求完成消息。

▶如果send函数copy数据成功,就返回实际copy的字节数,如果send在copy数据时出现错误,那么send就返回SOCKET_ERROR;如果send在等待协议传送数据时网络断开的话,那么send函数也返回SOCKET_ERROR。

综上所述,从企业发展、灵活运用、技术服务等多角度分析,得出结论是:还是基于消息服务器的模式,并采用Socket技术,进行上位机程序的设计和研发会更有现实意义和价值。

Related Posts

Leave a Reply

We will keep You Updated...
Sign up to receive breaking news
as well as receive other site updates!
Sponsors


Featured Video
Sponsors
Popular Posts
Flickr RSS
Recent Comments
Hi, this is a comment. To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashb
Tag Cloud