VC UDP網路控制台程式

2021-09-26 01:33:25 字數 3808 閱讀 6443

採用的是vc2008,控制台應用程式,使用udp編寫。

1、服務端**

#include #include 

#define serverport 6000 //

服務埠號

#pragma comment(lib, "ws2_32.lib")

int main(int argc, char *ar**)

/*confirm that the winsock dll supports 2.2.

*//*

note that if the dll supports versions greater

*//*

than 2.2 in addition to 2.2, it will still return

*//*

2.2 in wversion since that is the version we

*//*

requested.

*/if ( lobyte( wsadata.wversion ) != 2 ||hibyte( wsadata.wversion ) != 2

)

/*the winsock dll is acceptable. proceed.

*///

建立套接字

socket sockserver = socket(af_inet, sock_dgram, 0

);

if (invalid_socket ==sockserver)

else

//伺服器端

sockaddr_in addrserver;

addrserver.sin_addr.s_un.s_addr =htonl(inaddr_any);

addrserver.sin_family =af_inet;

addrserver.sin_port =htons(serverport);

//繫結套接字

err = bind(sockserver, (sockaddr*)&addrserver, sizeof

(sockaddr));

if (socket_error ==err)

else

//等待並接收資料

sockaddr_in addrclient;//

用於接收傳送端的位址資訊

int len = sizeof

(sockaddr);

char recvbuf[100

];

recvfrom(sockserver, recvbuf,

100, 0, (sockaddr*)&addrclient, &len);

//列印接收到的資料

printf("

receive data:%s from client [%s,%d]

", recvbuf, inet_ntoa(addrclient.sin_addr), addrclient.sin_port);

//關閉套接字

closesocket(sockserver);

//終止套接字型檔的使用

wsacleanup();

return

0;

}

2、客戶端**

#include #include 

#define serverport 6000 //

服務埠號

#pragma comment(lib, "ws2_32.lib")

int main(int argc, char *ar**)

/*confirm that the winsock dll supports 2.2.

*//*

note that if the dll supports versions greater

*//*

than 2.2 in addition to 2.2, it will still return

*//*

2.2 in wversion since that is the version we

*//*

requested.

*/if ( lobyte( wsadata.wversion ) != 2 ||hibyte( wsadata.wversion ) != 2

)

//建立套接字

socket sockclient = socket(af_inet, sock_dgram, 0

);

if (invalid_socket ==sockclient)

else

sockaddr_in addrserver;

addrserver.sin_addr.s_un.s_addr = inet_addr("

127.0.0.1

");

addrserver.sin_family =af_inet;

addrserver.sin_port =htons(serverport);

//傳送資料

err = sendto(sockclient, "

hello

", strlen("

hello

")+1, 0, (sockaddr*)&addrserver, sizeof

(sockaddr));

if (socket_error ==err)

else

//關閉套接字

closesocket(sockclient);

//終止套接字型檔的使用

wsacleanup();

return

0;

}

注意:上面兩部分**中的

#pragma comment(lib, "ws2_32.lib")

可以刪除,而改為設定程式屬性,具體如下步驟:
server 和 client 都要"專案屬性"--->"配置屬性"----> "鏈結"----> "輸入" --->"附加依賴項"中新增"ws2_32.lib"。先啟動服務端udpserver程式,再啟動客戶端udpclient程式,執行結果如下:服務端udpserver

客戶端udpclient

此時服務端udpserver的結果會發生變化,會受到客戶端傳送過來的資料,如下圖所示:

VC TCP網路控制台程式

在windows7系統下,採用工具為vs2008,win32控制台應用程式,編寫乙個基於tcp的client server網路程式。1 伺服器端 include include vs2012建立的mfc win32控制台應用程式中,此處預設包含的是 include stdafx.h 其中stdio....

控制台程式裡呼叫控制台程式

現在遇到這麼個問題,我想用控制台裡呼叫控制台程式來實現多文字。但是在控制台裡呼叫控制台程式時,它不是出現新的控制台視窗顯示,而是已有的控制台裡顯示呼叫的程式,system d code 練習 jjplace editor debug editor.exe winexec d code 練習 jjpl...

沒有控制台視窗的控制台程式

include include pragma comment linker,subsystem windows entry maincrtstartup int main int argc,char argv 編譯後執行程式會彈出乙個訊息框,而沒有背後的控制台視窗。再看看下面的 include in...