smkskt.c

来自「Porting the Simple Sockets Library Dr. C」· C语言 代码 · 共 73 行

C
73
字号
/* Smkskt.c: this function makes a Socket */#include <stdio.h>#include "sockets.h"/* --------------------------------------------------------------------- *//* makeSocket: this function allocates a Socket */#ifdef __PROTOTYPE__Socket *makeSocket(  char *hostname,  char *sktname,  int   sktType)#elseSocket *makeSocket(hostname, sktname, sktType)char *hostname;char *sktname;int   sktType;#endif{Socket *skt;/* allocate a Socket */skt= (Socket *) malloc(sizeof(Socket));outofmem((void *) skt,  "makeSocket: while allocating a Socket for <%s:%s>\n",  hostname,sktname);/* initialize Socket */skt->hostname= (char *) calloc((size_t) strlen(hostname)+1,sizeof(char));outofmem((void *) skt->hostname,  "makeSocket: while allocating string for <%s>\n",hostname);strcpy(skt->hostname,hostname);if(!sktname) sktname= "";skt->sktname= (char *) calloc((size_t) strlen(sktname)+1,sizeof(char));outofmem((void *) skt->sktname,"makeSocket: while allocating string for <%s>\n",sktname);strcpy(skt->sktname,sktname);/* set port and skt to zero */skt->port= skt->skt= 0;skt->type= sktType;/* return Socket */return skt;}/* ------------------------------------------------------------------------ *//* freeSocket: this function frees up a Socket */#ifdef __PROTOTYPE__void freeSocket(Socket *skt)#elsevoid freeSocket(skt)Socket *skt;#endif{if(skt) {	if(skt->hostname) free(skt->hostname);	if(skt->sktname)  free(skt->sktname);	skt->skt      = 0;	skt->port     = 0;	skt->type     = 0;	skt->hostname = NULL;	skt->sktname  = NULL;	free((char *) skt);	}}/* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?