服务器源代码:
#include
#include
#include
#include
#include
#include
#include
#define MAX_LINE 100
void my_fun(char *p)
{
if(p==NULL)
return;
for(; *p !='\0'; p++)
if(*p >= 'A' && *p <= 'Z')
*p=*p-'A'+'a';
}
int main(void)
{
struct sockaddr_in sin;
struct sockaddr_in cin;
int l_fd;
int c_fd;
socklen_t len;
char buf[MAX_LINE];
char addr_p[INET_ADDRSTRLEN];
int port=8000;
int n;
bzero(&sin,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_port=htons(port);
l_fd=socket(AF_INET,SOCK_STREAM,0);
bind(l_fd,(struct sockaddr *) &sin,sizeof(sin));
listen(l_fd,10);
printf("waiting..........\n");
while(1)
{
c_fd=accept(l_fd,(struct sockaddr *)&cin,&len);
n=read(c_fd,buf,MAX_LINE);
inet_ntop(AF_INET,&cin.sin_addr,addr_p,sizeof(addr_p));
printf("client IP IS %s ,port is %d\n",addr_p,ntohs(cin.sin_port));
printf("content is : %s \n",buf);
my_fun(buf);
write(c_fd,buf,n);
close(c_fd);
}
if(close(l_fd)==-1)
{
perror("fail to close\n");
exit(1);
}
return 0;
}
414716676 于 2009-05-04 16:29:48发表:
这只是简单的一个客服端发送一个字符串,服务器接受客服端请求,把接收到得字符串全换成小写字母,举一反三的道理,可以做出很多好玩的东西哦!
poerwq 于 2009-05-04 16:27:41发表:
慢慢研究
414716676 于 2009-05-04 16:26:42发表:
客服端源代码:
#include
#include
#include
#include
#include
#include
#define MAX_LINE 100
int main(int argc,char *argv[])
{
struct sockaddr_in sin;
char buf[MAX_LINE];
int sfd;
int port=8000;
char *str="test sting!";
if(argc>1)
{
str=argv[1];
}
bzero(&sin,sizeof(sin));
sin.sin_family=AF_INET;
inet_pton(AF_INET,"127.0.0.1",&sin.sin_addr);
sin.sin_port=htons(port);
sfd=socket(AF_INET,SOCK_STREAM,0);
connect(sfd,(struct sockaddr *)&sin,sizeof(sin));
write(sfd,str,strlen(str)+1);
read(sfd,buf,MAX_LINE);
printf("recive from server : %s \n",buf);
close(sfd);
return 0;
}