Server
1.Create Socket:
fd=socket(AF_INET,SOCK_STREAM,0);
2.Bind:
bind(fd,(sockaddr *)&addr_server,sizeof(addr_server));
3.Listen:
listen(fd,5);
4.Accept when the request of connect arrived:
fd_client=accept(fd,(sockaddr *)&addr_client,&len);
5.Recv/Send
Code:
#include "stdafx.h"
#include <process.h>
#include<iostream>
#include <Winsock2.h>
#pragma comment(lib,"WS2_32")
using namespace std;
SOCKET fd,fd_client = 0;
char buf[100];
struct sockaddr_in addr_server,addr_client;
int len=sizeof(sockaddr);
char* str = new char[100];
DWORD WINAPI WaitConn(LPVOID lpParameter)
{
return 0;
}
DWORD WINAPI GetMsg(LPVOID lpParameter)
{
while(1)
{
recv(fd_client,buf,100,0);
cout<<"\nMessage From peer:"<<buf<<endl;
cout<<"Input the msg u wanna send to peer:";
}
return 0;
}
DWORD WINAPI SendMsg(LPVOID lpParameter)
{
while(1)
{
cout<<"\nInput the msg u wanna send to peer:";
cin>>str;
send(fd_client,str,100,0);
}
return 0;
}
int main()
{
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD( 1, 1 );
WSAStartup( wVersionRequested, &wsaData );
fd=socket(AF_INET,SOCK_STREAM,0);
addr_server.sin_family=AF_INET;
addr_server.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addr_server.sin_port=htons(6000);
bind(fd,(sockaddr *)&addr_server,sizeof(addr_server));
listen(fd,5);
memset(str,0,100);
cout<<"Waiting for connect...\n";
fd_client=accept(fd,(sockaddr *)&addr_client,&len);
cout<<"connected!"<<endl;
CreateThread(NULL,0,GetMsg,NULL,NULL,NULL);
CreateThread(NULL,0,SendMsg,NULL,NULL,NULL);
while(1);
return 0;
}
Client
1.Create Socket:
fd=socket(AF_INET,SOCK_STREAM,0);
2.Connect to Srv:
connect(fd,( sockaddr *)&addr,sizeof(addr));
3.Recv/Send
Code:
#include "stdafx.h"
#include <process.h>
#include<iostream>
#include <Winsock2.h>
#pragma comment(lib,"WS2_32")
using namespace std;
SOCKET fd;
struct sockaddr_in addr;
char buf[100];
char* str = new char[100];
DWORD WINAPI GetMsg(LPVOID lpParameter)
{
while(1)
{
recv(fd,buf,100,0);
cout<<"\nMessage From peer:"<<buf<<endl;
cout<<"Input the msg u wanna send to peer:";
}
return 0;
}
DWORD WINAPI SendMsg(LPVOID lpParameter)
{
while(1)
{
cout<<"\nInput the msg u wanna send to peer:";
cin>>str;
send(fd,str,100,0);
}
return 0;
}
int main()
{
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD( 1, 1 );
WSAStartup( wVersionRequested, &wsaData );
memset(buf,0,100);
fd=socket(AF_INET,SOCK_STREAM,0);
addr.sin_family=AF_INET;
addr.sin_addr.S_un.S_addr=inet_addr("10.22.181.34");
addr.sin_port=htons(6000);
cout<<"connecting..."<<endl;
connect(fd,( sockaddr *)&addr,sizeof(addr));
cout<<"connected!"<<endl;
CreateThread(NULL,0,GetMsg,NULL,NULL,NULL);
CreateThread(NULL,0,SendMsg,NULL,NULL,NULL);
while(1);
return 0;
}