.


:




:

































 

 

 

 





SOCKET_ERROR = -1.

, "int closesocket (SOCKET s)", .

, "int WSACleanup (void)" WINSOCK . : ExitProcess .

 

2:

, Windows API. : TCP, UDP.

, :

1: ( . chat), .

2: .

3: TCP UDP, () . (.. , ).

4: . . .

 

DayTime:

 

#include <stdio.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <netdb.h>

 

#define fatal(x) { perror(x); exit(1); }

 

main()

{

int s, c, sz;

struct sockaddr_in ssa, csa;

struct sockaddr *sp, *cp;

char *tstr, node[128], service[16];

time_t itime;

 

sp = (struct sockaddr *)&ssa;

cp = (struct sockaddr *)&csa;

 

/* */

s = socket(AF_INET, SOCK_STREAM, 0);

if (s == -1)

fatal(" ");

 

/* 13 */

ssa.sin_family = AF_INET;

ssa.sin_port = htons(13);

ssa.sin_addr.s_addr = INADDR_ANY;

 

if (bind(s, sp, sizeof(ssa)) == -1)

fatal(" ");

 

/*

*

*

*/

if (listen(s, 0) == -1)

fatal(" listen");

 

while (1) {

/* */

sz = sizeof(csa);

if ((c = accept(s, cp, &sz)) == -1)

fatal(" accept");

 

/* , */

itime = time(NULL);

tstr = ctime(&itime);

 

/* */

printf("%s\t ", tstr);

/* */

if (getnameinfo(cp, sz, node,

128, service, 16, 0) == 0)

printf("%s:%s\n", node, service);

else

printf("%s:%d\n", inet_ntoa(csa.sin_addr),

ntohs(csa.sin_port));

 

/* */

send(c, tstr, 25, 0);

 

/* */

close(c);

}

}

 

 





:


: 2015-09-20; !; : 782 |


:

:

, .
==> ...

1284 - | 1252 -


© 2015-2024 lektsii.org - -

: 0.013 .