TCP transmission problem
- From: s9327620@xxxxxxxxxxxxxxxx
- Date: 2 Mar 2007 01:53:20 -0800
Dear ALL:
I want to write TCP server/client programming, but in my server
programming running not receive client information. please help solve
my problem thanks
server code
#include<iostream.h>
#include<winsock.h>
#include<windows.h>
#include<stdio.h>
#pragma comment(lib, "WSock32.lib")
BOOL InitWinsock();
#define SIZE 1024
int main(void)
{
int socket1;
InitWinsock();
struct sockaddr_in serv_addr;
struct sockaddr_in cli_addr;
int data_len=sizeof(cli_addr);
int recvdata;
int retval;
char buffer[SIZE];
// open a TCP socket
socket1=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
// bind our local address so that the client can sent to us
serv_addr.sin_family=AF_INET;
serv_addr.sin_port = htons(16533);
serv_addr.sin_addr.s_addr = INADDR_ANY; // 本機IP address
if(bind(socket1,(struct sockaddr*)&serv_addr,sizeof serv_addr)<0)
{
cout<<"bind error"<<endl;
exit(1);
}
/* Mark the socket so it will incoming connections */
if (listen(socket1, 5)< 0)
{
cout<<"listen error"<<endl;
exit(2);
}
cout<<"server is success"<<endl;
while(1)
{
cout<<"waiting for message form other"<<endl;
/* Wait for a client to connect */
if (accept(socket1, (struct sockaddr *) &cli_addr, &data_len)< 0)
{
cout<<"accept error"<<endl;
exit(3);
}
/* Receive message from client */
recvdata = recv(socket1, buffer,1024, 0);
/*if (recvdata <0)
{
cout<<"recv error"<<endl;
exit(4);
}*/
//recv(socket1, buffer, SIZE, 0);
/*if (recv(socket1, buffer, SIZE, 0)!= SOCKET_ERROR)
{
printf("recv data %s\n", buffer);
send(socket1, buffer, SIZE, 0);
}*/
while (recvdata > 0)
{
retval = send(socket1, buffer, recvdata, 0);
if (retval != recvdata)
{
cout<<"send error"<<endl;
exit(5);
}
// See if there's more
recvdata = recv(socket1, buffer, 1024, 0);
if (recvdata < 0)
{
cout<<"recv error"<<endl;
exit(6);
}
}
cout<<endl;
Sleep(500);
}
closesocket(socket1);
WSACleanup();
//cout<<"server is success"<<endl;
//return 0;
}
BOOL InitWinsock() {
int Error;
WORD VersionRequested;
WSADATA WsaData;
VersionRequested=MAKEWORD(2,2);
Error=WSAStartup(VersionRequested,&WsaData);
if(Error!=0)
{
return FALSE;
}
else
{
if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
{
WSACleanup();
return FALSE;
}
}
//cout<<"eee"<<endl;
return TRUE;
}
client code
#include<iostream.h>
#include<winsock.h>
#include<windows.h>
#include<stdio.h>
#pragma comment(lib, "WSock32.lib")
#define SIZE 1024
//#define SERV_UDP_PORT 1000
//#define SERV_UDP_ADDR "10.110.138.64"
BOOL InitWinsock();
int main(void)
{
SOCKET socket1;
InitWinsock();
struct sockaddr_in serv_addr;
struct sockaddr_in cli_addr;
int data_len=sizeof(cli_addr);
int retval;
int clientConnSock;
char buffer[SIZE]="\0";
serv_addr.sin_family=AF_INET;
serv_addr.sin_port = htons(16533);
serv_addr.sin_addr.s_addr = inet_addr("10.110.138.201"); // server
IP address
//open TCP socket
socket1 = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if (socket1< 0) {
cout<<"socket init error";
exit(2);
}
//connect to server
retval = connect(socket1, (struct sockaddr *) &serv_addr,
sizeof(serv_addr));
if (retval < 0)
{
cout<<"connect error";
exit(3);
}
//recv(socket1, buffer, sizeof(buffer),0);
//printf("%s",buffer);
while(1)
{
cout<<"Please input message"<<endl;
scanf("%s",buffer);
if (strcmp(buffer,"bye")==0)
break;
if(send(socket1, buffer, strlen(buffer), 0)<0)
{
cout<<"send error"<<endl;
exit(4);
}
/*if(send(socket1, buffer, 1024, 0)!=SOCKET_ERROR)
{
cout<<"data transmission......."<<endl;
if(recv(socket1, buffer, 1024, 0)!=SOCKET_ERROR);
printf("rece from server: %s\n",buffer);
}*/
//send(socket1, buffer, sizeof(buffer),0);
printf("rece from server: %s\n",buffer);
cout<<endl;
Sleep(500);
}
closesocket(socket1);
}
BOOL InitWinsock()
{
int Error;
WORD VersionRequested;
WSADATA WsaData;
VersionRequested=MAKEWORD(2,2);
Error=WSAStartup(VersionRequested,&WsaData);
if(Error!=0)
{
return FALSE;
}
else
{
if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
{
WSACleanup();
return FALSE;
}
}
//cout<<"eee"<<endl;
return TRUE;
}
.
- Follow-Ups:
- Re: TCP transmission problem
- From: Dave Lowther
- Re: TCP transmission problem
- Prev by Date: Problem faced while using Native WLAN API.
- Next by Date: socket inheritance & LSP filter
- Previous by thread: Problem faced while using Native WLAN API.
- Next by thread: Re: TCP transmission problem
- Index(es):
Relevant Pages
|
|