网络编程基础(一)
来源:互联网 发布:服装面料软件 编辑:程序博客网 时间:2024/06/05 04:49
网络编程基础
网络编程的实现就必须有服务器和客户端的存在
服务器:为客户提供服务的一方
客户端:获取数据的为客户端,可以是任意一台主机,只要它和服务器存在连接,并且的到服务器的授权,就可以使用服务器提供的服务
有两种协议可以选择:
(1)TCP:面向连接的 可靠的 流式服务
(2)UDP:无连接 不可靠的 数据包服务
TCP 的编程流程:
服务器(server):socket bind listen accept recv/send close
客户端(client):socket /*bind*/ connect recv/send close
int socket(int domain, int type, int protocol);
domain 参数告诉系统使用哪个底层协议族
type 参数指定服务类型。服务类型主要有 SOCK_STREAM 服务(流服务)和 SOCK_UGRAM (数据报)服务,对 TCP/IP协议族而言,其值取 SOCK_STREAM 表示传输层使用 TCP 协议,取 SOCK_DGRAM 表示传输层使用 UDP 协议。
protocol 参数是在前两个参数构成的协议集合下,再选择一个具体的协议,不过这个值通常通常都是唯一的(前两个参数已经完全决定了它的值)。几乎在所有的条件下,我们都应该把它设置为 0,表示使用默认协议。
socket 系统调用成功时返回一个 socket 文件描述符,失败则返回 -1并设置errno。
int bind(int sockfd, struct sockaddr *addr, int addrlen);
addr:指定 IP 地址和端口号
struct sockaddr_in
{
sa_family_t sin_family; //地质族 AF_INET
u_int16_t sin_port; //端口号 网络字节序(大端模式) PC 机(小端模式)
struct in_addr sin_addr; //IP 地址
}
struct in_addr
{
u_int32_t s_addr; //IP 地址最终的表示
}
int listen(int sockfd, int size);
int accept(int sockfd, struct sockaddr *addr, int *addrlen);
addr:记录客户端的 IP 地址和端口号
accept 的返回值是获取到的和客户端连接的文件描述符
int connect(int sockfd, struct sockaddr *addr, int addrlen);
addr:要连接的服务器的 IP 地址和端口号
netstat -atp 显示本机上所有的 TCP 服务程序以及其占用的端口号
- 网络编程基础(一)
- 网络编程基础(一)
- 网络编程基础(一)
- 网络编程(一):网络基础之一
- 网络编程基础一
- 网络编程基础一
- Linux网络编程基础(一)
- linux网络编程基础(一)
- linux网络编程基础(一)
- Java基础—网络编程(一)
- Java基础—网络编程(一)
- Linux网络编程(一)基础
- Java基础-网络编程(一)
- linux网络编程基础(一)
- Android网络编程基础(一)
- 套接字网络编程基础(一)
- 《Python网络编程基础》笔记(一)----底层网络
- 《Python网络编程基础》笔记(一)----底层网络
- 计算零到二十出现的次数
- 文章标题王二强
- 第九届山东理工大学ACM网络编程擂台赛 正式赛 sdut4074博弈
- 【练习】制作简易通讯录
- 游戏开发——本身也是游戏
- 网络编程基础(一)
- 列表,字典
- 封装OKHttp
- Matlab 2015b 原先正常使用,突然让重新激活
- Linux基础命令详解之权限管理
- HDU--6063--RXD and math
- java作业gui1
- Socks
- 安卓使用videoview进行音频、视频播放,及播放控制