麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

linux socket

2019-11-11 04:47:15
字體:
來源:轉載
供稿:網友
int socket(int domain,int type,int PRotocl);domain:協議族選項,AF_INET(ipv4),AF_INET6(ipv6)type:SOCK_STREAM(字節流)、SOCK_DGRAM(數據報流)protocl:通常為0;int bind(socket s,(sockaddr*)&sever,socklen_t len);s:套接字sever:綁定的地址len:字節長度int listen(socket s,int backlog);backlog:等待連接隊列中的最大數目,SOMAXCONN:128int connect(socket s,(sockaddr*)sever,socket_t len);socket accept(socket s,(sockaddr*)client,socklen_t clientlen);返回一個新的socket描述符fcntl將socket設置成阻塞模式和非阻塞模式int fcntl(int fd,int cmd,...)cmd:GETFL(獲取文件描述符)、SETFL(設置文件描述符)設置成非阻塞int flag=fcntl(sock,GETFL,0);flag|=O_NONBLOCK;fcntl(sock,SETFL,flag);變成阻塞int flag=fcntl(sock,GETFL,0);flag&=~O_NONBLOCK;fcntl(sock,SETFL,flag);ioctlsocket(s,long cmd,u_long* argp);cmd:輸入輸出控制命令,FIONBIO,FIONREAD,SIOCATMARK;argp:指向cmd指針;FIONBIO:默認從阻塞模式轉非阻塞,或者相反轉變,*argp=TRUE(非0),socket變非阻塞,*argp=FALSE(0),socket阻塞;unsigned long ul=1;ioctlsocket(s,FIONBIO,(unsigned long*)&ul);int getsockopt(socket s,int level,int optname,void* optval,socket_t *len);int setsockopt(socket s,int level,int optname,void* optval,socket_t *len);levle:選項協議層,SOL_SOCKET(普通套接字),IPPROTO_IP(IP),IPPROTO_TCP(TCP)optname:不同選項層對應不同的取值范圍,SO_RCVBUFoptval:指向返回項的緩沖optlen:選項長度設置接收緩沖區例子int rcvbuf=1024*10;

setsockopt(s,SOL_SOCKET,SO_RCVBUF,(char*)&rcvbuf,sizeof(int));

示例:

#ifndef _MY_SOCKET_#define _MY_SOCKET_#ifdef WIN32#include <Windows.h>#include <WinSock.h>#else#include <sys/socket.h>#include <sys/types.h>#endifclass Socket{public:	enum EMode{BLOCKING,NOBLOCKING};public:	Socket();	~Socket();	int Connect(char *destaddr,unsigned short port);	int Bind(char *paddr,int port);	int Listen();	int Accept();	void Ioctlsocket(EMode mode);	void SetBufferSize();	int RecvData(char *recvbuf,int len);	int SendData(char *sendbuf,int len);private:	int s;//監聽socket	int socks;//建聯socket};#endif
#include "Socket.h"Socket::Socket(){#ifdef WIN32	/* 加載socket dll 庫,第一個調用的函數	WSAStartup(Word wVersionRequired,LPWSADATA lpWSAData);	wVersionRequired:動態庫版本,MAKEWORD(X,Y)指定參數;	lpWSAData:動態庫相關信息*/	LPWSADATA lpWSAData={0};	int iRet=WSAStartup(MAKEWORD(2,2),&lpWSAData);	if(iRet!=0){		WSACleanup();	}	#else 	#endif	s=socket(AF_INET,NULL,SOCK_STREAM);			  }Socket::~Socket(){	closesocket(s);}int Socket::Bind(char* paddr,int port){	sockaddr_in severaddr;	severaddr.sin_addr.s_addr=inet_addr(paddr);	severaddr.sin_family=AF_INET;	severaddr.sin_port=htons(port);	return bind(s,(sockaddr*)&severaddr,sizeof(severaddr));}int Socket::Connect(char *destaddr,unsigned short port){	sockaddr_in server;	server.sin_addr.s_addr=inet_addr(destaddr);	server.sin_family=AF_INET;	server.sin_port=htons(port);	return connect(s,(sockaddr*)&server,sizeof(server));}int Socket::Listen(){	listen(s,4);}int Socket::Accept(){	sockaddr_in client;	int client_len=sizeof(client);	/*client 內容接受后客戶填充*/	int socks=accept(s,(sockaddr*)&client,&client_len);	if(socks==-1){		return false;	}	return true;}void Socket::Ioctlsocket(EMode mode){	/*ioctlsocket(s,long cmd,u_long* argp);	cmd:輸入輸出控制命令,FIONBIO,FIONREAD,SIOCATMARK;	argp:指向cmd指針;	FIONBIO:默認從阻塞模式轉非阻塞,或者相反轉變,*argp=TRUE(非0),socket變非阻塞,*argp=FALSE(0),socket阻塞;	*/	if(mode==EMode::NOBLOCKING)	{		unsigned long ul=1;		ioctlsocket(s,FIONBIO,(unsigned long*)&ul);	}	else{		unsigned long ul=0;		ioctlsocket(s,FIONBIO,(unsigned long*)&ul);	}	}void Socket::SetBufferSize(){	long rcvbuf=1024*10;	setsockopt(s,SOL_SOCKET,SO_RCVBUF,(char*)&rcvbuf,sizeof(long));}int Socket::RecvData(char *recvbuf,int len){	return recv(s,recvbuf,len,0);}int Socket::SendData(char *sendbuf,int len){	return send(s,sendbuf,len,0);}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91美女福利视频 | 一区二区美女视频 | 亚洲生活片 | 久久精品色 | 国产一国产精品一级毛片 | 蜜桃网站在线观看 | 久久精品国产99久久6动漫亮点 | 91成人免费在线视频 | 久久精品视频亚洲 | 色播久久 | 欧美日韩手机在线观看 | 久久成人国产精品入口 | 欧美一级黄色免费看 | 欧美成年性h版影视中文字幕 | 久久久成人精品 | 成年免费视频黄网站在线观看 | 欧美成人激情在线 | 99国产精品白浆在线观看免费 | 久久久久久久一区 | 久久久中精品2020中文 | 99精美视频| 日本黄色免费观看视频 | 91精选视频在线观看 | 久久免费视频一区二区三区 | 性欧美xxxx免费岛国不卡电影 | 99精品国产一区二区三区 | 久草在线新时代视觉 | 噜噜噜躁狠狠躁狠狠精品视频 | 国产免费观看a大片的网站 欧美成人一级 | 91精品国| 久久亚洲精品国产一区 | 91,视频免费看 | 超久久 | 欧美激情视频一区二区免费 | 悠悠成人资源亚洲一区二区 | h视频免费看 | 成人做爽爽爽爽免费国产软件 | 91久久久久久久久久久久久 | 久久精品伊人网 | 国产亚洲小视频 | 99视频有精品视频高清 |