套接字(-)
来源:互联网 发布:工业控制网络 pdf 编辑:程序博客网 时间:2024/05/16 00:40
客户端
创建一个套接字
int socket(int domain,in type ,int protocol);
domin参数协议族(标准),type通信类型,protect指定使用饿协议
int sockfd=socket(AF_UNIX,SOCK_STEAM,0);
给套接字地址命名 (结构体类型)
stuctct sockadd_in
{
short int sin_family;
unsigned short int sin_short;
struct in_add sin_add;
}
struct in_addr
{
unsigned long int s_adddr;
}
struct sockaddr_in address;
address.sin_family=AF_UNIX(类型为ipv4)
address.sin_port=htons(6000); 服务器的端口号
adress.sin_addr.s_addr=inet_addr("127.0.0.1");//设置服务器的ip
int res=connect(sockfd,(struct sockaddr*)&saddr,sizeof(saddr)) ;连接服务器
assert(res!=-1);
printf("input:\n");
while(1)
{
char buff[128]={0};
fgets(buff,128,stdin);
if(strncmp(buff,"end",3)==0)
{
break;
}
send(sockfd,buff,strlen(buff),0);
char recvbuff[128]={0};
int i=recv(sockfd,recvbuff,127,0);
printf("%s\n",recvbuff);
buff[0]=0;
}
close(sockfd);
return 0;
}
服务器端
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>
int main()
{
int sockfd=socket(AF_INET,SOCK_STREAM,0);
assert(sockfd!=-1);
struct sockaddr_in saddr,caddr;
memset(&saddr,0,sizeof(saddr));
saddr.sin_family=AF_INET;
saddr.sin_port=htons(6000);
saddr.sin_addr.s_addr=inet_addr("127.0.0.1");
int res=bind(sockfd,(struct sockaddr *)&saddr,sizeof(saddr));
assert(res!=1);
listen(sockfd,5);
while(1)
{
int len=sizeof(caddr);
int c=accept(sockfd,(struct sockaddr*)&caddr,&len);
if(c<0)
{
continue;
}
while(1)
{
char buff[128]={0};
int i=recv(c,buff,127,0);
if(i==0)
{
exit(0);
}
printf("%d\n",i);
printf("buff=%s\n",buff);
send(c,"ok",2,0);
}
close(c);
}
}
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- 套接字
- android 获取路径目录方法以及判断目录是否存在,创建目录
- 创意封装OkHttp,简单易用,你还在等什么呢?
- 九,责任链模式
- vs2015安装或升级第三方组件
- 幽默经典语录
- 套接字(-)
- 事件JavaScript API
- Python编码错误的解决方案
- 解决bootstrap-table多次请求只触发一次的问题
- Android Studio 完美修改应用包名
- 数据库的操作
- C++ 二叉排序树BST(二叉查找树)
- PAT 甲级 1009. Product of Polynomials
- hibernate中SQLQuery的addEntity();方法