Linux 网络编程简单实例
文章由LinuxBoy分享于2019-03-31 08:03:03
Linux 网络编程简单实例
当然此处仅仅是对于单用户请求的处理,对于多用户的请求后面再说!
对于server处理:
server要做的就是创建自己的套接字,然后设置一些参数:例如协议类型,IP之类。
然后就是bind参数,再次就是监听( listen),最后就是accept进入睡眠等待状态,if
有cilent的请求就会有反应!
对于chient的处理:
建立自己的套接字,然后就是连接到server,发送自己的数据,然后等待server的回送!
server.cpp
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include <iostream>
using namespace std;
#define PORT6000 //!> 端口
#define MAX_REQ5 //!> 监听情况下:在请求队列中允许的最大请求数
int main()
{
intlisten_socket,client_socket; //!> 监听,客户套接字
structsockaddr_inlocal_addr; //!> server结构
structsockaddr_inclient_addr; //!> client结构
intrecv_len;
charbuf[1024];
charrecv_buf[1024];
//!> intsocket(int domain, int type, int protocol);参数:协议族;套接字类型;协议,一般为0->TCP/IP
//!> 创建套接字
//!>
if((listen_socket = socket(AF_INET,SOCK_STREAM, 0)) ==-1) //!> 创建套接字
{
cout << "创建server套接字失败~"<< endl;
exit(1);
}
//!> 下面设置本地的套接字的参数结构
//!>
local_addr.sin_family =AF_INET; //!> 代表TCP/IP
local_addr.sin_port =htons(PORT); //!> 端口号( 转化成流格式 )