没有合适的资源?快使用搜索试试~ 我知道了~
基于TCP(面向连接)的socket编程,分为服务器端和客户端 服务器端的流程如下: (1)创建套接字(socket) (2)将套接字绑定到一个本地地址和端口上(bind) (3)将套接字设为监听模式,准备接收客户端请求(listen) (4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept) (5)用返回的套接字和客户端进行通信(send/recv) (6)返回,等待另一个客户请求。 (7)关闭套接字。 客户端的流程如下: (1)创建套接字(socket) (2)向服务器发出连接请
资源推荐
资源详情
资源评论
Linux下下TCP通信简单实例通信简单实例
基于TCP(面向连接)的socket编程,分为服务器端和客户端
服务器端的流程如下:
(1)创建套接字(socket)
(2)将套接字绑定到一个本地地址和端口上(bind)
(3)将套接字设为监听模式,准备接收客户端请求(listen)
(4)等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)
(5)用返回的套接字和客户端进行通信(send/recv)
(6)返回,等待另一个客户请求。
(7)关闭套接字。
客户端的流程如下:
(1)创建套接字(socket)
(2)向服务器发出连接请求(connect)
(3)和服务器端进行通信(send/recv)
(4)关闭套接字
下面通过一个具体例子讲解一下具体的过程和相关的函数,环境是suse linux。
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <memory.h>
#include <unistd.h>
//#include <linux/in.h>
#include <netinet/in.h>
//#include <linux/inet_diag.h>
#include <arpa/inet.h>
#include <signal.h>
/**
关于 sockaddr sockaddr_in socketaddr_un说明
http://maomaozaoyue.blog.sohu.com/197538359.html
*/
#define PORT 11910 //定义通信端口
#define BACKLOG 5 //定义侦听队列长度
#define buflen 1024
void process_conn_server(int s);
void sig_pipe(int signo);
int ss,sc; //ss为服务器socket描述符,sc为某一客户端通信socket描述符
int main(int argc,char *argv[])
{
struct sockaddr_in server_addr; //存储服务器端socket地址结构
struct sockaddr_in client_addr; //存储客户端 socket地址结构
int err; //返回值
pid_t pid; //分叉进行的ID
/*****************socket()***************/
ss = socket(AF_INET,SOCK_STREAM,0); //建立一个序列化的,可靠的,双向连接的的字节流
if(ss<0)
{
printf("server : server socket create error
");
return -1;
}
//注册信号
sighandler_t ret;
ret = signal(SIGTSTP,sig_pipe);
if(SIG_ERR == ret)
{
printf("信号挂接失败
");
return -1;
}
else
printf("信号挂接成功
");
/******************bind()****************/
//初始化地址结构
资源评论
weixin_38698403
- 粉丝: 8
- 资源: 920
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于NDIS 6.x的Filter生成代码
- js-leetcode题解之12-integer-to-roman.js
- js-leetcode题解之11-container-with-most-water.js
- js-leetcode题解之10-regular-expression-matching.js
- js-leetcode题解之9-palindrome-number.js
- js-leetcode题解之8-string-to-integer-(atoi).js
- js-leetcode题解之7-reverse-integer.js
- js-leetcode题解之6-zigzag-conversion.js
- js-leetcode题解之5-longest-palindromic-substring.js
- js-leetcode题解之4-median-of-two-sorted-arrays.js
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功