linux网络编程socket服务器端实现
2018-01-20 18:49
288 查看
#include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<unistd.h> #include<sys/wait.h> #include<syslog.h> #include<string.h> #include<sys/socket.h> #include<errno.h> #include<netinet/in.h> #define buffersize 1024 int main() { //定义两个进程,一个是发送信息进程,一个是接收信息进程 pid_t caller; pid_t recevier; /* 建立socket连接 */ //保存socket信息 struct sockaddr_in client_sock; struct sockaddr_in server_sock; char buffer[buffersize]; int socketfd; //开始建立,AF_UNSPEC不仅支持ipv4也支持ipv6 if ((socketfd = socket(AF_UNSPEC, SOCK_STREAM, 0)) == -1) { perror("Establish failed"); exit(1); } server_sock.sa_family= AF_UNSPEC; server_sock.sin_port = htons(22); server_sock.sin_addr.s_addr = INADDR_ANY; bzero(&(server_sock.sin_zero), 8); int i = 1; setsocketopt(socketfd,SOL_SOCKET,SO_REUSEADDR,&i,sizeof(i)); //绑定socket` if (bind(socketfd, (struct sockaddr_in *) &server_sock, sizeof(struct sockaddr_in)) == -1) { perror("Bind fail..."); exit(-1); } //监听 if (listen(socketfd,MAX_QUE_CONN_NM) == -1) { perror("Listen fail..."); exit(-1); } printf("listen...."); //如果有请求则接受 if (accept(socketfd, (struct sockaddr_in *)&client_sock, &sin_size) == -1) { perror("no accept..."); exit(-1); } //接收信息 if (recvfrom(socketfd, buffer, buffersize, 0) == -1) { perror("receive fail..."); exit(-1); } printf("receive information: %s",buffer); //关闭连接 close(socketfd); exit(0); }
相关文章推荐
- linux网络编程-服务器端线程池技术(C语言实现)
- 网络编程UDP的socket编程实现(linux下)
- Linux Socket 网络编程 基于GTK+ 的多线程实现的局域网通信软件
- Linux socket编程入门及客户端服务器端通信实现 – 基础篇
- Linux下网络socket编程——实现服务器(select)与多个客户端通信
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
- linux网络编程之socket(六):利用recv和readn函数实现readline函数
- linux 网络编程:使用两线程实现socket同时收发数据
- linux网络编程之socket(六):利用recv和readn函数实现readline函数
- linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
- linux 网络编程:使用两线程实现socket同时收发数据
- linux 网络编程:使用两线程实现socket同时收发数据
- linux下C/C++网络编程基本:socket实现tcp和udp的例子
- linux socket网络编程:fcntl select(多个客户端连接服务器端情形)
- Linux网络编程:使用select函数实现socket 收发数据
- linux网络编程:使用多进程实现socket同时收发数据
- Linux socket网络编程之聊天室(三):select异步通讯实现
- linux网络编程:使用多进程实现socket同时收发数据
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时