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");
}