SOCKADDR_IN serversockaddr, clientsockaddr;
SOCKET serversock, clientsock;
WSADATA data;
char inf[50];
char ans[50];
int len;
int n, choice, num;
n = WSAStartup(MAKEWORD(2,2), &data);
len = sizeof(clientsockaddr);
printf("server:\n");
printf("====================================\n");
if (n != 0) {
printf("Initialize error!\n");
exit(1);
}
memset(&serversockaddr, 0, sizeof(serversockaddr));
serversockaddr.sin_family = AF_INET;
serversockaddr.sin_port = htons(PORT);
serversockaddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
serversock = socket(AF_INET, SOCK_STREAM, 0);
if (serversock == INVALID_SOCKET) {
printf("Creat socket error!\n");
WSACleanup();
exit(1);
}
n = bind(serversock, (LPSOCKADDR) &serversockaddr,
if (n == SOCKET_ERROR) {
sizeof(serversockaddr));
printf("bind error!\n");
exit(1);
}
n = listen(serversock, 10);
if (n == SOCKET_ERROR) {
//client
#include
#include
#include
#define PORT 9400
int main() {
printf("listen error!\n");
exit(1);
}
choice = 1;
printf("Waiting connect.......\n");
clientsock = accept(serversock, (LPSOCKADDR) &clientsockaddr, &len);
printf("Client %s connected.\n", inet_ntoa(clientsockaddr.sin_addr));
while (choice) {
num = recv(clientsock, inf, 50, 0);
if ((num == 0) || (num == SOCKET_ERROR)) {
printf("Client stoped.\n");
exit(1);
}
printf("Received: %s\n", inf);
num = send(clientsock, ans, strlen(ans) + 1, 0);
if (num != (int) strlen(ans) + 1) {
printf("Send error!Stoped!");
exit(1);
}
}
return 0;
}
//sever
#include
#include
#include
#define PORT 9400
int main() {
WSADATA data;
SOCKADDR_IN serversock;
SOCKET clientsock, serversocket;
char serverIP[100];
char inf[50];
char ans[50];
int n, choice, num;
printf("Client:\n");
printf("========================================\n");
printf("Pleas enter the IP of server:");
gets(serverIP);
n = WSAStartup(MAKEWORD(1, 1), &data);
if (n != 0) {
printf("Initialize Winsock error!\n");
exit(1);
}
serversock.sin_addr.S_un.S_addr = inet_addr(serverIP);
serversock.sin_port = htons(PORT);
serversock.sin_family = AF_INET;
clientsock = socket(AF_INET, SOCK_STREAM, 0);
if (clientsock == INVALID_SOCKET) {
printf("Create socket error!\n");
exit(1);
}
serversocket = socket(AF_INET, SOCK_STREAM, 0);
n = bind(serversocket, (LPSOCKADDR) &serversock, sizeof(serversock));
n = connect(clientsock, (LPSOCKADDR) &serversock, sizeof(serversock));
if (n == SOCKET_ERROR) {
printf("Connect to %s error!\n", serverIP);
exit(1);
printf("Connected!\n");
} else {
}
choice = 1;
while (choice) {
printf("Please input information:");
gets(inf);
num = send(clientsock, inf, strlen(inf) + 1, 0);
if (num != (int) strlen(inf) + 1) {
printf("Send error!Stoped!");
exit(1);
}
num = recv(clientsock, ans, 50, 0);
if ((num == 0) || (num == SOCKET_ERROR)) {
printf("Server stoped.\n");
exit(1);
}
printf("%s\n", ans);
printf("Continue to send (y/n):");
if (getchar() == 'n')
getchar();
choice = 0;
}
return 0;
}