記得要 link Ws2_32.lib, 如果用的是 Visual C++, 選 Project, Settings...
選 Link, 在 Object/library modules: 加進 Ws2_32.lib, 選 OK 即可~
--
#include <Winsock2.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
SOCKET server_sockfd,client_sockfd;
int server_len, client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return 1;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
}
}
server_sockfd=socket(AF_INET,SOCK_STREAM,0);
server_address.sin_family=AF_INET;
server_address.sin_addr.s_addr=inet_addr("140.112.30.125");
cout << server_address.sin_addr.s_addr << '\n';
server_address.sin_port=1234;//htons(1234);
server_len=sizeof(server_address);
if(bind(server_sockfd,(struct sockaddr *)&server_address,server_len)!=0)
{
cout << WSAGetLastError() << '\n';
printf("Error bind\n");
exit(0);
}
listen(server_sockfd,5);
{
char ch[10] ="default";
printf("server waiting....\n");
client_len = sizeof(client_address);
client_sockfd=accept( server_sockfd,
(struct sockaddr * ) & client_address, &client_len);
recv(client_sockfd,ch,10,1);
printf("%s\n",ch);
closesocket(client_sockfd);
}
return 0;
}