Linux网络编程----tcp客户端与服务端

一、服务端:

1.1、socket监听

1.1.1 socket()函数创建一个TCP套接字

int fd = socket(AF_INET, SOCK_STREAM, 0)

AF_INET:IPv4地址族

SOCK_STREAM:流式套接字---tcp

返回值:函数成功会返回一个非负整数

1.1.2、创建sockaddr_in 类型的两个成员变量来表示服务端和客户端的地址信息

例如:

struct sockaddr_in serverAddress, clientAddress;

sockaddr_in :一个用于表示IPv4地址的结构体,用来表示服务端和客户端的地址信息

u_short sin_family; // 地址族, AF_INET,2 bytes

u_short sin_port; // 端口,2 bytes

struct in_addr sin_addr; // IPV4地址,4 bytes

char sin_zero[8]; // 8 bytes unused,作为填充

1.1.3 .利用memset函数清空serverddress

void *memset(void *ptr, int value, size_t num);

将特定内存块设置为特定值的函数

ptr:指向要设置内存块的指针

value : 要设置的最终值

num : 要设置的字节数

1.1.4、端口

TCP端口号与UDP端口号独立

* 端口号一般由IANA (Internet Assigned Numbers Authority) 管理

* 众所周知端口:1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX 系统占用)

* 已登记端口:1024~49151

*动态或私有端口:49152~65535

1.1.5、字节序

主机字节序到网络字节序

u_long htonl (u_long hostlong)

;u_short htons (u_short short);

网络字节序到主机字节序

u_long ntohl (u_long hostlong);

u_short ntohs (u_short short);

1.2.bing()函数绑定套接字

int res = bind(fd, (struct sockaddr *)&serverAddress, sizeof(struct sockaddr_in));

将套接字设置为监听状态

listen(fd, 100);

fd:套接字文件描述

100:等待连接列队最大长度

1.3、接受客户端的连接请求

accept()是一个用于套接字编程的方法,

* 它用于在服务器端接受客户端的连接请求。

* 当服务器监听到客户端的连接请求时,

* accept()方法会返回一个新的套接字对象,该对象用于与客户端进行通信

1.4、编辑消息发送:

int i = 0;

char temp[128];

int count = 0;

count = write(clintFd, temp, strlen(temp));

二、客户端

监听socket(

客户端通过connect()函数与服务端创建连接

int serverFD = connect(fd, (struct sockaddr *)&serverAddress, sizeof(serverAddress));

接受消息:(read(fd, mes, 128))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值