- 论坛徽章:
- 0
|
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
//#include<signal.h>
//#include<string>
//#include<sstream>
#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
//create the sock
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if(-1 == sockfd){
cerr<<"creat sock error..."<<endl;
exit(1);
}
//bind the address
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(7000);
server.sin_addr.s_addr = htonl(INADDR_ANY);
if(-1 == bind(sockfd, (struct sockaddr*)&server, sizeof(struct sockaddr_in))){
cerr<<"bind sock error..."<<endl;
exit(1);
}
//start service
struct sockaddr_in client;
int len = sizeof(struct sockaddr_in);
while(true){
char c;
if(-1 == recvfrom(sockfd, &c, 1, 0, (struct sockaddr*)&client, &len)){
cerr<<"server : recv data error..."<<endl;
continue;
}
cout<<"server : before read "<<endl;
read(sockfd,&c, 1);
cout<<"get from client : "<<c<<endl;
c = toupper(c);
if(-1 == sendto(sockfd, &c, 1, 0, (struct sockaddr*)&client, len)){
cerr<<"server : send data error..."<<endl;
continue;
}
}
#if 0
[dayangxi@localhost dayangxi]$ g++ -o serverUDP serverUDP.cpp
serverUDP.cpp: In function `int main(int, char**)':
serverUDP.cpp:38: invalid conversion from `int*' to `socklen_t*'
#endif
} |
|