# include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
int main()
{
int s,fd,len;
struct sockaddr_in my_addr;//定义IP地址结构
struct sockaddr_in remote_addr;
int sin_size;
char buf[100];
memset(&my_addr,0,sizeof(my_addr));//网络地址和端口号
my_addr.sin_family=AF_INET;
my_addr.sin_addr.s_addr=INADDR_ANY;
my_addr.sin_port=htons(8000);
if((s=socket(AF_INET,SOCK_STREAM,0))<0)//创建套接字
{
perror("socket");
return 1;
}
if(bind(s,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))<0)//套接字与ip地址绑定
{
perror("bind");
return 1;
}
listen(s,5);//监听客户端链接
sin_size=sizeof(struct sockaddr_in);
if((fd=accept(s,(struct sockaddr *)&remote_addr,&sin_size))<0)//等待链接
{
perror("accept");
return 1;
}
printf("accept client %s\n",inet_ntoa(remote_addr.sin_addr));
len=send(fd,"Welcome to my server!\n",21,0);//发送问候信息
while((len=recv(fd,buf,100,0))>0)//接受信息
{
buf[len]='\0';
printf("%s\n",buf);
if(send(fd,buf,len,0)<0)//发送信息
{
perror("write");
return 1;
}
}
close(fd);
close(s);
return 0;
}
可以通过telnet 127.0.0.1 8000 测试链接,并简单会话
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
int main()
{
int s,fd,len;
struct sockaddr_in my_addr;//定义IP地址结构
struct sockaddr_in remote_addr;
int sin_size;
char buf[100];
memset(&my_addr,0,sizeof(my_addr));//网络地址和端口号
my_addr.sin_family=AF_INET;
my_addr.sin_addr.s_addr=INADDR_ANY;
my_addr.sin_port=htons(8000);
if((s=socket(AF_INET,SOCK_STREAM,0))<0)//创建套接字
{
perror("socket");
return 1;
}
if(bind(s,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))<0)//套接字与ip地址绑定
{
perror("bind");
return 1;
}
listen(s,5);//监听客户端链接
sin_size=sizeof(struct sockaddr_in);
if((fd=accept(s,(struct sockaddr *)&remote_addr,&sin_size))<0)//等待链接
{
perror("accept");
return 1;
}
printf("accept client %s\n",inet_ntoa(remote_addr.sin_addr));
len=send(fd,"Welcome to my server!\n",21,0);//发送问候信息
while((len=recv(fd,buf,100,0))>0)//接受信息
{
buf[len]='\0';
printf("%s\n",buf);
if(send(fd,buf,len,0)<0)//发送信息
{
perror("write");
return 1;
}
}
close(fd);
close(s);
return 0;
}
可以通过telnet 127.0.0.1 8000 测试链接,并简单会话