套接字:一种在网络中不同主机之间进行数据交换的通信桥梁,人们所使用的网络通信软件功能均是基于Socket套接字作为通信桥梁实现。寻址方式:在Winsock中,用户可以使用TCP/IP地址家族中统一的套接字地址结构解决TCP/IP寻址中可能出现的问题,定义如下1 struct sockaddr_in{...
分类:
编程语言 时间:
2014-08-26 16:55:56
阅读次数:
208
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.只让你进程调用 accept,然后把所接受的已连接套接字“传递”给某个子进程。
这样做就不用因为所有子进程都调用 accept 而需提供上锁保护
2.父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的套接字
typedef struct {
pid_t ...
分类:
其他好文 时间:
2014-08-26 13:46:56
阅读次数:
154
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.允许多个进程在引用同一个监听套接字的描述符上调用 accept 这种做法并不具备兼容性。
解决的方法是让应用进程在调用 accept 前后安置某种形式的锁(lock),这样任意时刻只有一个子进程
阻塞在 accept 调用中,其他子进程则阻塞在试图获取用于保护 accept...
分类:
其他好文 时间:
2014-08-26 11:36:06
阅读次数:
231
利用MFC创建基于UDP的聊天通信工具很简单,程序是基于MFC的对话框实现的。程序界面如下面所示:
1 概述
要添加的内容主要主要是发送端和接受端程序,以及最开始对话框程序初始化的时候对套接字的初始化。以及自定义消息WM_RECVDATA
2 接受线程
其次要注意的是因为接受函数recvfrom是一个阻塞函数,所以要开辟一个线程来专门接受消息。并且要把socket以及窗口句...
分类:
其他好文 时间:
2014-08-25 17:00:44
阅读次数:
344
/**
* TCP,使用非阻塞 connect
**/
#include "unp.h"
int
connect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec)
{
int flags, n, error;
socklen_t len;
fd_set rset, wset;
struct timeval tval;
//1.调用 fcntl 设置套接字为非阻塞
flags = Fcntl(sockfd, ...
分类:
其他好文 时间:
2014-08-24 23:57:13
阅读次数:
464
/**
* UDP,协议无关,调用 getaddrinfo 和 udp_client
**/
#include "unp.h"
int
udp_client(const char *host, const char *serv, SA **saptr, socklen_t *lenp)
{
int sockfd, n;
struct addrinfo hints, *res, *ressave;
//1.调用 getaddrinfo
//协议地址族为 AF_UNSPEC ,套接字类型为...
分类:
其他好文 时间:
2014-08-24 23:57:03
阅读次数:
601
通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。 ...
分类:
移动开发 时间:
2014-08-24 18:10:03
阅读次数:
306
一、socket简介
1. 套接字
套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。
它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要。
套接字为BSD UNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳。
...
分类:
编程语言 时间:
2014-08-23 23:00:31
阅读次数:
356
Winsock编程
Socket的英文原义是“孔”或“插座”。作为BSD
UNIX的进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主...
在mysql服务器本机上链接mysql数据库时,经常会噢出现mysql.sock不存在,导致无法链接的问题,这是因为如果指定localhost作为一个主机名,则mysqladmin默认使用unix套接字文件链接,而不是tcp/ip,而中个套接字(mysql.sock)经常会因为各种原因而被删除,从m...
分类:
数据库 时间:
2014-08-21 16:38:44
阅读次数:
197