bind(lisnfd,(struct sockaddr *)&addr,sizeof(addr));
2011-03-15 21:06
337 查看
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<time.h>
#include<errno.h>
int main(int argc,char **argv)
{
int n,lisnfd,clinfd;
lisnfd=socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in addr;
addr.sin_family=AF_INET;
addr.sin_port=htons(83);
addr.sin_addr.s_addr=htonl(INADDR_ANY);
bind(lisnfd,(struct sockaddr *)&addr,sizeof(addr));
listen(lisnfd,5);
char buffer[5];
for(;;)
{
// int n;
clinfd=accept(lisnfd,(struct sockaddr *)NULL,NULL);
if(clinfd<0)
printf("error");
while((n=recv(clinfd,buffer,5,0))>0)
{
printf("%d /n",n);
buffer
='/n';
fputs(buffer,stdout);
printf("/n");
}
int k;
k=send(clinfd,"hellohello",11,0);//recv后接着send,失败
while(k<0)
{
k=send(clinfd,"hellohello",11,0);
printf("%d /n",k);
}
close(clinfd);
}
}
客户机:
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<memory.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<string.h>
#define MAXSIZE 10
int main(int argc,char **argv)
{
char buffer[MAXSIZE+1];
int n,sockfd=socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in addr;
memset(&addr,0,sizeof(struct sockaddr_in));
addr.sin_family=AF_INET;
addr.sin_port=htons(83);
inet_pton(AF_INET,"127.0.0.1",&addr.sin_addr);
if(connect(sockfd,(struct sockaddr *)&addr,sizeof(struct sockaddr))<0)
{
printf("error");
}
int y=send(sockfd,"fuck",5,0);
while((n=recv(sockfd,buffer,MAXSIZE,0))>0) //send后接着recv,失败
{
buffer
='/n';
fputs(buffer,stdout);
}
printf("hahaha/n");
printf("%d /n",y);
close(sockfd);
return 0;
}
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<time.h>
#include<errno.h>
int main(int argc,char **argv)
{
int n,lisnfd,clinfd;
lisnfd=socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in addr;
addr.sin_family=AF_INET;
addr.sin_port=htons(83);
addr.sin_addr.s_addr=htonl(INADDR_ANY);
bind(lisnfd,(struct sockaddr *)&addr,sizeof(addr));
listen(lisnfd,5);
char buffer[5];
for(;;)
{
// int n;
clinfd=accept(lisnfd,(struct sockaddr *)NULL,NULL);
if(clinfd<0)
printf("error");
while((n=recv(clinfd,buffer,5,0))>0)
{
printf("%d /n",n);
buffer
='/n';
fputs(buffer,stdout);
printf("/n");
}
int k;
k=send(clinfd,"hellohello",11,0);//recv后接着send,失败
while(k<0)
{
k=send(clinfd,"hellohello",11,0);
printf("%d /n",k);
}
close(clinfd);
}
}
客户机:
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<memory.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<string.h>
#define MAXSIZE 10
int main(int argc,char **argv)
{
char buffer[MAXSIZE+1];
int n,sockfd=socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in addr;
memset(&addr,0,sizeof(struct sockaddr_in));
addr.sin_family=AF_INET;
addr.sin_port=htons(83);
inet_pton(AF_INET,"127.0.0.1",&addr.sin_addr);
if(connect(sockfd,(struct sockaddr *)&addr,sizeof(struct sockaddr))<0)
{
printf("error");
}
int y=send(sockfd,"fuck",5,0);
while((n=recv(sockfd,buffer,MAXSIZE,0))>0) //send后接着recv,失败
{
buffer
='/n';
fputs(buffer,stdout);
}
printf("hahaha/n");
printf("%d /n",y);
close(sockfd);
return 0;
}
相关文章推荐
- (bind(sListen, (struct sockaddr *)&local, sizeof(local))//把socket与IP和端口
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
- redefinition of `struct in6_addr' 的解决办法
- accept(sListen, (struct sockaddr *)&client,&iAddrSize);//侦听中
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
- 套接字编程基本的数据结构struct sockaddr_in, struct sockaddr,struct in_addr
- struct sockaddr与struct sockaddr_in的区别和联系
- struct sockaddr 与 struct sockaddr_in
- 结构体struct sockaddr_in, struct sockaddr,struct in_addr
- struct sockaddr与struct sockaddr_in的区别和联系
- sizeof struct&union
- 套接字编程基本的数据结构struct sockaddr_in, struct sockaddr,struct in_addr
- struct sockaddr和struct sockaddr_in结构
- ushare编译之 ‘struct sockaddr_storage’ has no member named ‘s_addr’
- socket编程总结(三) struct sockaddr_in /struct sockaddr_in6/struct addrinfo 结构体
- linux struct ifreq, struct sockaddr struct sockaddr_in的介绍
- sockaddr & sockaddr_in struct
- struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
- Declaration of 'struct sockaddr_in' will not be visible outside of this function警告的处理