採用的是vc2008,控制台應用程式,使用udp編寫。
1、服務端**
#include #include2、客戶端**#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;
}
#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...