ÍøÂç±à³ÌʵÑé ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/10/19 10:40:27ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

cout<<\ÎÞ·¨»ñÈ¡¼ÆËã»úÖ÷»úÃû¼°IP\ } else {

cout<

for(int i=0;p->h_addr_list[i]!=0;i++) {

struct in_addr in;

memcpy(&in,p->h_addr_list[i],sizeof(struct in_addr)); cout<<\µÚ\µÄIPΪ:\ } }

WSACleanup(); cin.get(); return 0; } 3¡¢·ÖÎö

»ñÈ¡¼ÆËã»úµÄÃû³ÆºÍIPµØÖ·¿ÉÒÔͨ¹ýµ÷ÓÃWindows SocketÀïÃæµÄº¯ÊýÍê³É£¬ÏÂÃæÉÏÊÇÓõ½µÄº¯Êý:WSAStartup(),´Ëº¯ÊýÔÚÓ¦ÓóÌÐòÖгõʼ»¯windows sockets DLL,Õâ¸öº¯Êýµ÷Óóɹ¦ºó£¬²Å¿ÉÒÔµ÷ÓÃÆäËûµÄAPIº¯Êý¡£

Áù¡¢ÊµÑéÐĵãº

ͨ¹ý±¾ÊµÑ飬Á˽âÁËsocket±à³ÌµÄ»ù±¾Ë¼Ï룬¶®µÃÁËÍøÂç±à³ÌµÄ»ù±¾Ô­Àí¡£

5

ʵÑéÈý »ùÓÚÁ÷ʽÌ×½Ó×ÖµÄÍøÂç±à³ÌÉè¼Æ

Ò»¡¢ ʵÑéÄ¿µÄ£º

1¡¢Éè¼ÆÒ»¸öÍøÂç²âÊÔ³ÌÐò

2¡¢²ÉÓÃSend()ºÍWSASend()·½Ê½½øÐÐÇëÇó·¢ËÍ,²âÊÔÔÚÕâÁ½ÖÖ·¢ËͲÙ×÷Ï·þÎñÆ÷µÄÏìӦʱ¼äÓкβî±ð

¶þ¡¢ÊµÑéÀàÐÍ£ºÉè¼Æ Èý¡¢ÊµÑéѧʱ£º2 ËÄ¡¢ÊµÑé»·¾³

1¡¢Ó²¼þ»·¾³£º Windows²Ù×÷ϵͳ 2¡¢Èí¼þ»·¾³£º Visual C++6.0

Î塢ʵÑéÄÚÈݼ°²½Ö裺

1¡¢´ò¿ªVisual C++6.0£¬´´½¨Ò»¸öÏîÄ¿ 2¡¢±àдԴ³ÌÐòÎļþ £¨1£©

#include #include #include #include #include #define PORT 7000 main () {

struct sockaddr_in client, server; int s, ns, namelen, pktlen; char buf[400]; char buf3[200];

s=socket(AF_INET, SOCK_STREAM, 0); memset ((char *)&server, sizeof(server), 0); server.sin_family = AF_INET; server.sin_port = htons(PORT);

server.sin_addr.s_addr = INADDR_ANY;

bind(s, (struct sockaddr *)&server, sizeof(server)); listen(s,1);

namelen = sizeof (client);

ns = accept (s, (struct sockaddr *)&client, &namelen); for (;;) {

pktlen = recv (ns, buf, sizeof (buf), 0); if (pktlen == 0) break; printf (\send (ns, buf3,sizeof(buf3), 0); }

close(ns); close(s); }

6

(2)

#include

#include #include #include #define PORT 7000

#define HOST_ADDR \int main () {

struct sockaddr_in server; int s, ns; int pktlen, buflen; char buf1[256], buf2[256];

s=socket(AF_INET, SOCK_STREAM, 0);

server.sin_family = AF_INET; server.sin_port = htons(PORT); server.sin_addr.s_addr = inet_addr (HOST_ADDR); if (connect(s, (struct sockaddr *)&server, sizeof(server)) < 0) { perror(\for (;;) {

printf (\gets (buf1);

buflen = strlen (buf1); if (buflen == 0) break;

send(s, buf1, buflen + 1, 0); recv(s, buf2, sizeof (buf2), 0); printf(\}

close(s); return 0; }

Áù¡¢ÊµÑéÐĵãº

ͨ¹ý±¾ÊµÑ飬Á˽âÁË»ùÓÚÁ÷ʽÌ×½Ó×ÖµÄÍøÂç±à³ÌÉè¼Æ±à³ÌµÄ»ù±¾Ë¼Ï룬¶®µÃÁËÍøÂç±à³ÌµÄ»ù±¾Ô­Àí¡£

7

ʵÑéËÄ »ùÓÚÊý¾Ý±¨Ì×½Ó×ÖµÄÍøÂç±à³ÌÉè¼Æ

Ò»¡¢ ʵÑéÄ¿µÄ£º

1¡¢ÕÆÎÕÊý¾Ý±¨Ì×½Ó×Ö±à³ÌµÄ»ù±¾·½·¨

2¡¢Éè¼ÆÒ»¸öÍøÂç²âÊÔ³ÌÐò,¿Í»§¶Ë¸ßËÙ·¢ËÍÊý¾Ý£¬·þÎñÆ÷¶Ë½ÓÊÕÊý¾Ý²¢Í³¼Æ±¨ÎĸöÊý,²âÊÔµ±Ç°ÏµÍ³ºÍÍøÂç»·¾³Ï·þÎñÆ÷µÄ¶ª°üÂÊÊǶàÉÙ

¶þ¡¢ÊµÑéÀàÐÍ£ºÉè¼Æ Èý¡¢ÊµÑéѧʱ£º2 ËÄ¡¢ÊµÑé»·¾³

1¡¢Ó²¼þ»·¾³£º Windows²Ù×÷ϵͳ 2¡¢Èí¼þ»·¾³£º Visual C++6.0

Î塢ʵÑéÄÚÈݼ°²½Ö裺

1¡¢´ò¿ªVisual C++6.0£¬´´½¨Ò»¸öÏîÄ¿ 2¡¢±àдԴ³ÌÐòÎļþ

(1)#include #include #include #include #include #include #include #include #include #include #define PORT 7000 int main(void) {int sockfd,pktlen; char buf[300],buf1[300];

struct sockaddr_in server,client; sockfd=socket(AF_INET,SOCK_DGRAM,0);

memset ((char *)&server, sizeof(server), 0); server.sin_family = AF_INET; server.sin_port = htons(PORT); server.sin_addr.s_addr = INADDR_ANY;

bind(sockfd,(struct sockaddr *)&server,sizeof(struct sockaddr_in)); for (;;) {

int l=sizeof(struct sockaddr_in);

pktlen = recvfrom (sockfd, buf, sizeof (buf), 0,(struct sockaddr_in *)&client,&l); if (pktlen == 0)

8