這個例子是從網上轉抄過來的,經過本人測試,沒有任何問題,想學socket程式設計的人可以看一下,非常不錯的入門程式。
伺服器端:
#include
#include
using namespace std;
const unsigned short listen_port = 7788;
#pragma comment(lib,"ws2_32.lib") //ws2_32.lib檔案,提供了對以下網路相關api的支援,若使用其中的api,則應該將ws2_32.lib加入工程
int main(int argc, char* argv)
if ( wsadata.wversion != wversionrequested )
socket sock = socket(af_inet, sock_stream, 0);
if ( invalid_socket == sock )
sockaddr_in addr_server;
addr_server.sin_family = af_inet;
addr_server.sin_port = htons(listen_port);
addr_server.sin_addr.s_un.s_addr = htonl(inaddr_any);
err = bind(sock, (sockaddr*)&addr_server, sizeof(addr_server));
if ( socket_error == err )
err = listen(sock, somaxconn);
if ( socket_error == err )
cout<<"start listening on port "int addrlen = sizeof(addr_client);
while (true)
sprintf(send_buf, "%s:%d said: %s", inet_ntoa(addr_client.sin_addr), ntohs(addr_client.sin_port), recv_buf);
couterr = send(sock_con, send_buf, strlen(send_buf) + 1, 0);
if ( socket_error == err )
} coutif ( socket_error == err )
} else
} return 0;
}客戶端:
#include
#include
using namespace std;
const char* server_ip = "200.1.1.8";
const unsigned short server_port = 7788;
#pragma comment(lib,"ws2_32.lib") //ws2_32.lib檔案,提供了對以下網路相關api的支援,若使用其中的api,則應該將ws2_32.lib加入工程
int main(int argc, char* argv)
if ( wsadata.wversion != wversionrequested )
socket sock = socket(af_inet, sock_stream, 0);
if ( invalid_socket == sock )
sockaddr_in addr_server;
addr_server.sin_family = af_inet;
addr_server.sin_port = htons(server_port);
addr_server.sin_addr.s_un.s_addr = inet_addr(server_ip);
err = connect(sock, (sockaddr*)&addr_server, sizeof(addr_server));
if ( socket_error == err )
cout<<"connection established,input 'quit' or 'exit' to exit."char recv_buf[512];
while (true)
err = send(sock, send_buf, strlen(send_buf) + 1, 0);
if ( socket_error == err )
err = recv(sock, recv_buf, sizeof(recv_buf), 0);
if ( err <= 0 )
cout<}
err = closesocket(sock);
if ( socket_error == err )
wsacleanup();
return 0;
}
Win32 平台 C socket 程式設計練習
使用c 實現win32平台的tcp ip網路程式設計,練習socket的使用。服務端 include include const unsigned short listen port 8700 int main int argc,char argv using namespace std word ...
Win32程式設計
win32 malloc函式的底層實現是win32api utf 16編碼以16位無符號整數為單位,注意是16位為乙個單位,不是乙個字元就只有16位,這個要看字元的unicode編碼處於什麼範圍而定,有可能是2個位元組,也可能是4個位元組現在機器上的unicode編碼一般就是指utf 16 以兩個位...
Win32 下 C C 串列埠程式設計
在windows下,把串列埠當作是乙個檔案來操作,開啟串列埠時就像開啟檔案那樣,用完後必須使用關閉檔案的函式將串列埠關閉 與串列埠通訊有關的api函式 handle createfile lpctstr lpfilename,dword dwdesiredaccess,dword dwsharemo...