红联Linux门户
Linux帮助

送给各位新手一个简单的网络程序源代码

发布时间:2009-05-04 16:26:15来源:红联作者:414716676
送个各位新手一个简单的服务器,客服端代码,仅供大家学习,高手直接飘过

服务器源代码:
#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;
}
文章评论

共有 3 条评论

  1. 414716676 于 2009-05-04 16:29:48发表:

    这只是简单的一个客服端发送一个字符串,服务器接受客服端请求,把接收到得字符串全换成小写字母,举一反三的道理,可以做出很多好玩的东西哦!

  2. poerwq 于 2009-05-04 16:27:41发表:

    慢慢研究

  3. 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;
    }