C++套接字问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 12:13:24
#include <iostream.h>
#include <winsock.h>
#pragma comment(lib,"Ws2_32")
#define MYPORT 777 /*定义用户连接端口*/
#define BACKLOG 10 /*多少等待连接控制*/

int main()
{
int sockfd, new_fd; /*定义套接字*/
struct sockaddr_in my_addr; /*本地地址信息 */
struct sockaddr_in their_addr; /*连接者地址信息*/
int sin_size;
WSADATA ws;
WSAStartup(MAKEWORD(2,2),&ws); //初始化Windows Socket Dll

//建立socket
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
//如果建立socket 失败,退出程序
cout<<"socket error\n";
exit(1);
}
//bind本机的MYPORT端口
my_addr.sin_family = AF_INET; /* 协议类型是INET */
my_addr.sin_port = htons(MYPORT); /* 绑定MYPORT端口*/
my_addr.sin_addr.s_addr = INADDR_ANY; /* 本机IP*/
if (bind(sockfd, (struct sock

每句都注释实在没有必要。无非就是一个TCP的socket的连接过程。如果要学习的话建议看下TCP/IP详解卷一。另外孙鑫的C++视频教材里面有一章专门讲这个的,可以看一下。

、~~~~~~~~~~原型
typedef struct WSAData{
WORD wVersion; //WSAAtartup函数会将这个字段设置为将要使用的Winsock版本.
WORD wHighVersion; //现有Winsock库的最高版本.
char szDescription[WSADESCRTIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;//客同时打开的最大套接字数.取决与可用的物理资源.
unsigned short iMaxUdpDg; //数据报最大长度
char FAR* 1pVendorInfo; //保留字段
}WSADATA,*LPWSADATA ;