利用accept函数来处理客户端请求的连接
来源:互联网 发布:网络监控工程宝 编辑:程序博客网 时间:2024/06/07 07:06
#include<sys/socket.h>
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<memory.h>
#include<sys/mman.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#define PORT 1234
#define MAX_QUE 5
int main()
{
struct sockaddr_in local_sockaddr,client_sockaddr;
int size;//客户端地址大小
int socketfd;//本地socket套接字描述符
int clientfd;//客户端链接描述符
if((socketfd=socket(AF_INET,SOCK_STREAM,0))<0)//建立socket连接
{
perror("socket");
exit(1);
}
printf("Socket id = %d\n",socketfd);
local_sockaddr.sin_family = AF_INET;
local_sockaddr.sin_port = htons(PORT);
local_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
printf("server ip =%s\n",inet_ntoa(local_sockaddr.sin_addr));//输出服务器ip地址
memset(local_sockaddr.sin_zero,0,8);
int i;
setsockopt(socketfd,SOL_SOCKET,SO_REUSEADDR,&i,sizeof(i));//允许重复使用本地的地址与套接字进行绑定
if(bind(socketfd,(struct sockaddr *)&local_sockaddr,sizeof(struct sockaddr))<0)//绑定函数bind()
{
perror("bind");
exit(1);
}
printf("Bind success!\n");
if(listen(socketfd,MAX_QUE)<0)//利用listen()设置被动监听
{
perror("listen");
exit(1);
}
printf("Listening>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
if((clientfd=accept(socketfd,(struct sockaddr*)&client_sockaddr,&size))<0)//调用accept()函数,等待客户端的链接
{
perror("accept");
exit(1);
}
printf("connect client success\n");
printf("client ip = %s\n",inet_ntoa(client_sockaddr.sin_addr));//返回客户端ip地址
printf("client port = %d\n",client_sockaddr.sin_port);//返回客户端端口号
close(socketfd);//关闭socket连接
}
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<memory.h>
#include<sys/mman.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#define PORT 1234
#define MAX_QUE 5
int main()
{
struct sockaddr_in local_sockaddr,client_sockaddr;
int size;//客户端地址大小
int socketfd;//本地socket套接字描述符
int clientfd;//客户端链接描述符
if((socketfd=socket(AF_INET,SOCK_STREAM,0))<0)//建立socket连接
{
perror("socket");
exit(1);
}
printf("Socket id = %d\n",socketfd);
local_sockaddr.sin_family = AF_INET;
local_sockaddr.sin_port = htons(PORT);
local_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
printf("server ip =%s\n",inet_ntoa(local_sockaddr.sin_addr));//输出服务器ip地址
memset(local_sockaddr.sin_zero,0,8);
int i;
setsockopt(socketfd,SOL_SOCKET,SO_REUSEADDR,&i,sizeof(i));//允许重复使用本地的地址与套接字进行绑定
if(bind(socketfd,(struct sockaddr *)&local_sockaddr,sizeof(struct sockaddr))<0)//绑定函数bind()
{
perror("bind");
exit(1);
}
printf("Bind success!\n");
if(listen(socketfd,MAX_QUE)<0)//利用listen()设置被动监听
{
perror("listen");
exit(1);
}
printf("Listening>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
if((clientfd=accept(socketfd,(struct sockaddr*)&client_sockaddr,&size))<0)//调用accept()函数,等待客户端的链接
{
perror("accept");
exit(1);
}
printf("connect client success\n");
printf("client ip = %s\n",inet_ntoa(client_sockaddr.sin_addr));//返回客户端ip地址
printf("client port = %d\n",client_sockaddr.sin_port);//返回客户端端口号
close(socketfd);//关闭socket连接
}
0 0
- 利用accept函数来处理客户端请求的连接
- 服务器端我们通过一个 Servlet 来处理来自客户端的请求,并对客户端作出响应。其核心处理代码
- 利用select函数实现非阻塞式的socket accept
- Linux函数accept中断处理
- 利用API函数来处理文件
- socket的accept函数
- AR系列高通芯片通过调用ubus来处理连接客户端的问题
- 准多线程TCP服务器,处理客户端连接请求。
- connect函数和accept函数哪个先返回? 客户端和服务端哪个先完成建立tcp连接?
- 封装好的客户端请求xmlhttp处理
- SpringMVC 处理客户端请求的过程
- nginx对客户端请求的特殊处理
- TCP Server处理多Client请求的方法—非阻塞accept与select
- 利用connect函数创建客户端程序,连接前文编好的服务器程序
- socket的accept函数解析以及服务器和多个客户端的端口问题
- socket的accept函数解析以及服务器和多个客户端的端口问题
- Socket进程处理被中断的系统调用及Accept函数返回EINTR错误处理
- accept()函数的奇怪问题
- web应用的规划
- Maven管理Oracle JDBC驱动
- QT增加输入对话框
- JavaScript-3.1--获取用户的输入,输出用户输入的两数之和---ShinePans
- 星星评分
- 利用accept函数来处理客户端请求的连接
- 解决:自定义cocosbuilder插件属性不可编译的问题
- The Heroes
- QT增加消息对话框
- html5 式程序猿表白
- 浅谈Android五大布局(一)——LinearLayout、FrameLayout和AbsoulteLayout
- 利用connect函数创建客户端程序,连接前文编好的服务器程序
- 大话设计模式
- Azure编程笔记(3):用Fiddler调试Azure的应用程序