主程序:
#include <stdio.h>
#include <process.h>
#include <winsock.h>
#include <stdlib.h>
void errexit(const char * , ...);
SOCKET passivesock(const char * service, const char * transport, int qlen);
#define STKSIZE 16536
#define QLEN 5#define BUFSIZE 4096
#define WSVERS MAKEWORD(2, 0)
int TCPechod(SOCKET);
int main(int argc, char * argv[]) {
WSADATA wsadata;
SOCKET msock,
ssock;
char * service = "echo";
struct sockaddr_in sin;
int alen;
memset( & sin, 0, sizeof(sin));
if (WSAStartup(WSVERS, &wsadata) != 0) errexit("WSAStartup failed/n");
switch (argc) {
case 1:
break;
case 2:
service = argv[1];
break;
default:
errexit("Usage: TCPechod [port]/n");
}
msock = passivesock(service, "tcp", QLEN);
while (1) {
printf("waiting..../n");
alen =