ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 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
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
#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
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