📄 dce_socket.c
字号:
/***************************************Ho Chi Minh City University of Technology Computer Science Department Distributed Computing Environment (DCE)Written by Nguyen Van Noi -59406114File dce_socket.c on Mon Dec 14 20:22:04 1998****************************************/#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include "dce_utils.h"#define MAXLISTEN 5intdce_connect (u_long uAddr, int nPort){ int sock; struct sockaddr_in addr; if ((sock = socket (AF_INET, SOCK_STREAM, 0)) == -1) return -1; memset ((void *) &addr, 0, sizeof (addr)); addr.sin_addr.s_addr = uAddr; addr.sin_family = AF_INET; addr.sin_port = htons (nPort); if (connect (sock, (struct sockaddr *) &addr, sizeof (addr)) == -1) { close (sock); return -1; } return sock;}intdce_socket (int *nPort){ static int p = 1024; int desc; struct sockaddr_in addr; int addr_length; int option_value = 1; if ((desc = socket (AF_INET, SOCK_STREAM, 0)) == -1) return -1; if (setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, (char *) (&option_value), sizeof (int)) == -1) { close (desc); return -1; } memset (&addr, 0, sizeof (addr)); addr.sin_addr.s_addr = getmyaddr (); addr.sin_family = AF_INET; do { addr.sin_port = htons (p++); if (!p) { close (desc); return -1; } } while (bind (desc, (struct sockaddr *) &addr, sizeof (addr))); addr_length = sizeof (addr); if ((getsockname (desc, (struct sockaddr *) &addr, &addr_length)) == -1) { close (desc); return -1; } *nPort = ntohs (addr.sin_port); listen (desc, MAXLISTEN); return (desc);}intdce_socketaccept (int sock){ struct sockaddr addr; int addrlen = sizeof (addr); return accept (sock, &addr, &addrlen);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -