All pastes #621579 Raw Edit

server part

public text v1 · immutable
·published 2007-07-16 08:30 UTC
rendered paste body
#include <iostream>
#include <winsock.h>
#include <winsock2.h>
using namespace std; 
int main(){
#define BUF_LEN 512
SOCKET listen1 , client;
WSAData wsadat;
int result;
char recvbuf[BUF_LEN];
int recvbuflen = BUF_LEN;
int error;
int sendresult;

result = WSAStartup(MAKEWORD(2,2), &wsadat);
if(result != 0){
printf("WSAStartup() failed: %d\n", result);
goto clean;
}
SOCKADDR_IN server;
server.sin_family = AF_INET;
server.sin_port = htons(27015);
server.sin_addr.s_addr = INADDR_ANY;


listen1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(listen1 == INVALID_SOCKET){
error = WSAGetLastError();
cout<<"socket() returned error: "<<error<<endl;
goto clean;
}


result = bind(listen1,(SOCKADDR*)&server, sizeof(server));
if(result == SOCKET_ERROR){
error = WSAGetLastError();
cout<<"bind() returned error: "<<error<<endl;
goto clean;
}

result = listen(listen1, SOMAXCONN);
if(result == SOCKET_ERROR){
error = WSAGetLastError();
cout<<"listen() returned error: "<<error<<endl;
goto clean;
}

client = accept(listen1, NULL,NULL);
if(client == SOCKET_ERROR){
error = WSAGetLastError();
cout<<"accept() returned error: "<<error<<endl;
goto clean;
}
closesocket(listen1);
cout<<"what would you like to send: "<<endl;
cin>>recvbuf;
do{
result =recv(client, recvbuf, recvbuflen, 0);

if(result > 0){
printf(" Bytes Recived: %d\n", result);
cout<<recvbuf<<endl;
sendresult = send(client, recvbuf, result, 0);
if(sendresult == SOCKET_ERROR){
error = WSAGetLastError();
cout<<"send() returned error: "<<error<<endl;
goto clean;

}printf("Bytes Sent: %d\n", sendresult);}
else if(result ==0) printf("connection closed...\n");
else{
printf("Recived failed: %d\n", WSAGetLastError());
}}while(result>0);

result = shutdown(client, SD_SEND);
if(result == SOCKET_ERROR){
error = WSAGetLastError();
cout<<"shutdown() Returned ERROR: "<<error<<endl;
}
clean:
WSACleanup();
closesocket(client);
system("PAUSE");


}