简单的网络编程,客户端的请求没反应
风泥 2012-08-13 10:33:47 服务器端:
#include <Winsock2.h>
#include <iostream>
using namespace std;
#pragma comment (lib, "ws2_32.lib")
int main()
{
WSADATA wd;
WSAStartup(0x0202, &wd);
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);//IPPROTO_IP);//0
sockaddr_in sa ={AF_INET, htons(5056), 0};//INADDR_ANY}; //绑定IP为0,代表忽略多IP
int i = bind(sock, (sockaddr *) &sa, sizeof(sa));
listen(sock, 5);
i = sizeof(sa);
cout << i << endl;
accept(sock,(sockaddr*)&sa, &i);
char buf[1000] = "220 welcome\n";
send(sock, buf, strlen(buf), 0);
i = recv(sock, buf, sizeof(buf), 0);
cout << i << " : " << buf << endl;
i = sizeof(sa);
i = WSAGetLastError();
closesocket(sock);
WSACleanup();
return 0;
}
客户端:
#include <Winsock2.h>
#pragma comment (lib, "ws2_32.lib")
#include <iostream>
using namespace std;
int main()
{
WSADATA wd;
WSAStartup(0x0202, &wd);
SOCKET client = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in sa1;
sa1.sin_family = AF_INET;
sa1.sin_port = htons(5056);
sa1.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
int k = connect(client, (sockaddr*)&sa1, sizeof(client));
cout << k << endl;
char buf[1000] = "220 hello\n";
int i = recv(client, buf, sizeof(buf), 0);
send(client, buf, strlen(buf), 0);
cout << i << " : " << buf << endl;
i = sizeof(sa1);
i = WSAGetLastError();
closesocket(client);
WSACleanup();
return 0;
}