hhhijjjjjjj

  1. #include <stdio.h>
  2. #include ‹stdlib.h>
  3. #include <string.h>
  4. #include ‹winsock2.h>
  5. #define BUF SIZE 30
  6. void ErrorHandling (char *message);

7.

8. int main(int arg, char *argv [])

9.

{

10.

11.

12.

13.

14.

WSADATA waData;

SOCKET servsock;

char message [BUF_SIZE];

int strLen;

int clntAdrSz;

15.

16.

17.

18.

19.

SOCKADDR_IN servAdr, cIntAdr;

if(argc!=2) {

printf("Usage : % <port›\n", arg[0]);

exit (1);

20.

}

21

22.

if (WSAStartup (MAKEWORD(2, 2), &waData) |=0)

ErrorHandling("WSAStartup() error!");

23.

24.

25.

26.

servSock=socket (PF_INET, SOCK_DGRAM, 0);

if(servsock==INVALID_SOCKET)

ErrorHandling ("UDP socket creation error");

21 •

28.

29.

30.

31.

memset (&servAdr, 0, sizeof (servAdr)); servAdr.sin family=AF_ INET;

servAdr.sin_addr.s_addr=hton1(INADDR_ANY) ;

servAdr.sin_port=htons(atoi(argv [1]));

32.

33.

34.

if(bind(servSock, (SOCKADDR*)&servAdr, sizeof(servAdr))==SOCKET_ERROR)

ErrorHandling("bind() error");

35.

36.

37.

while(1)

{

38.

39.

40.

41.

42.

cintAdrSz=sizeof(cintAdr);

strLen=recvfrom(servSock, message, BUF_SIZE, 0,

(SOCKADDR*)&cIntAdr, &cintAdrSz);

sendto(servSock, message, strLen, 0,

(SOCKADDR*)&cIntAdr, sizeof(cintAdr));

43.

44.

45.

46.

}

closesocket (servsock);

WSACleanup (); return 0;

47. }

48.

50. {

51.

52.

53.

54. }

49. void ErrorHandling(char *message)
fputs (message, stderr);
fputc("In', stderr);
exit (1);

* echo client win.c

1.

2.

3.

4.

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <winsock2.h>

5.

  1. #define BUF SIZE 30
  2. void ErrorHandling(char *message);

8.

9. int main(int arg, char *argv[])

10. {

11.

12.

13.

14.

WADATA waData;

SOCKET sock;

char message [BUF_SIZE];

int strLen;

15.

16.

17.

18.

19.

SOCKADDR_IN servAdr;

if (argc!=3) {

printf("Usage : % <IP> ‹port›\n", arg[0]);

exit (1);

20.

}

21.

22.

if(WSAStartup (MAKEWORD(2, 2), &wsaData) |=0)

ErrorHandling("WSAStartup() error!");

23.

24.

25.

26.

sock=socket (PF_INET, SOCK_DGRAM, 0);

if(sock==INVALID SOCKET)

ErrorHandling("socket () error");

27.

28.

29.

30.

31.

32.

memset (&servAdr, 0, sizeof(servAdr)) ; servAdr.sin_family=AF_INET;

servAdr. sin_addr.s_addr=inet_addr (argv[1]); servAdr.sin_port=htons(atoi(argv [2]));

connect (sock, (SOCKADDR*)&servAdr, sizeof(servAdr));

33.

34.

35.

while(1)

{

36.

37.

38.

39.

fputs ("Insert message(q to quit): ", stdout); fgets (message, sizeof (message), stdin);

if(stremp(message, "q\n") I| !stremp(message, "Q\n"))

break;

40.

41.

send (sock, message, strlen (message), 0);

strLen=recv (sock, message, sizeof(message)-1, 0);

message strLene0;

printf ("Message from server: %", message);

45.

46.

47.

48.

}

closesocket (sock);

WSACleanup();

return 0;

49. }

50.

51. void Errorandling(char *message)

52. {

53.

54.

55.

puts (message, stderr);

fputc('\n', stderr);

exit (1);

56. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值