服务端: 客户端
socket_fd = socket( PF_ ,SOCK_ , ) :定义文件描述符 socket_fd= socket( PF_ , SOCK_ , )
命名类型,通信类型
| |
\/ |
bind(socket_fd,sockaddr_un/in ,length(name)) :绑定地址 |
| |
\/ \/
listen(socket_fd,number); :监听 connect(socket,&name,&lenght):连接
| / |
| / |
| / |
\/ / |
accept(socket_fd,&client_name,&client_length) :接受 |
| |
\/ \ /
working :处理 --------------------- --------working
|
\/
close(socket_fd) :结束
unlink(socket_name)
work:
在accept后,服务器与客户已经建立好连接了。可以调用网络I/O进行读写操作了,即实现了网咯中不同进程之间的通信!网络I/O操作有下面几组:
- read()/write()
- recv()/send()
- readv()/writev()
- recvmsg()/sendmsg()
- recvfrom()/sendto()
推荐使用recvmsg()/sendmsg()函数,这两个函数是最通用的I/O函数,实际上可以把上面的其它函数都替换成这两个函数。
主机socket:
int listen_fd,cli_fd;
srtuct sockaddr_in server_addr;
listen_fd = socket(PF_INET,SOCK_STREAM,0); 创建socket对象
bzero(server_addr,sizeof(server_addr));
server_adrr.sin_family = PF_INET; 协议类型
server_addr.sin_port = htons(8888); 地址端口
server_addr.sin_addr.s_addr = inet_addr("192.168.1.101"); 或者 = htonl(INADDR_ANY); 或者 =inet_addr(argv[1]);
选择固定ip 本机任意地址 用户输入
bind(listen_fd,(struct sockaddr *)&server_addr,sizeof(server_addr)) ; 绑定地址信息
listen(listen_fd,5); 监听网络
cli_fd = accept(listen_fd,NULL,NULL); /*accept(sockfd,(struct sockaddr *)&their_addr,&len)); 阻塞等待连接
working;
close(listen_fd)
客户端:
int sock_fd,;
struct sockaddr_in server_addr;
sock_fd = socket(PF_INET,SOCK_STREAM,0);
server_adrr.sin_family = PF_INET;
server_addr.sin_port = htons(8888);
server_addr.sin_addr.s_addr = inet_addr("192.168.1.101"); 或者 = htonl(INADDR_ANY); 或者 =inet_addr(argv[1]);
connect(sock_fd,(struct sockaddr *)&server_addr,sizeof(server_addr)); 发起连接
cloes(sock_fd)
http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
http://www.qnr.cn/pc/erji/cpp/sj/201008/527491.html
http://www.blogjava.net/zjusuyong/articles/304788.html
相关推荐
【标题】"HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_" 提供的知识点主要集中在使用C#编程语言实现基于TCP协议的Socket通信上,并且涉及到一个名为"HPSocket.Net"的库。HPSocket.Net是针对.NET...
**SuperSocket库详解** SuperSocket是一款高性能、轻量级的C# Socket服务器开发框架,它为开发者提供了构建基于TCP/IP协议的应用程序的便利工具。在.NET平台上,SuperSocket以其易于扩展和高度定制化的特性,成为了...
SocketTool是一款专为IT专业人士设计的实用工具,主要用于处理网络通信中的套接字(Socket)操作。套接字是计算机网络编程中的一个基本概念,它提供了进程间通信(IPC)和网络通信的能力,使得不同设备上的应用程序...
**SuperSocket Socket C# 通讯详解** 在C#编程领域,网络通信是一个不可或缺的部分,而SuperSocket则是一个强大且易用的.NET Socket服务器框架。它为开发者提供了构建自定义网络应用服务的基础,使得处理TCP连接变...
Socket 编程详解 在网络编程中,Socket 是一个基本概念, plays a crucial role in building network applications. 在 C# 中,Socket 编程是通过使用 System.Net.Sockets 命名空间中的类和方法来实现的。下面,...
Socket池和Socket连接池是网络编程中的重要概念,主要用于提高应用程序的性能和效率。在处理大量并发网络连接时,传统的单个Socket连接方式可能会导致系统资源的过度消耗,因此引入了Socket池技术。 Socket,全称是...
**SuperSocket:强大的.NET Socket框架** SuperSocket是一个高度可扩展且易于使用的.NET Socket服务端开发框架,它简化了基于Socket的网络应用开发过程。SuperSocket提供了丰富的API和强大的功能,使得开发者可以...
SocketTool(很好用的socket测试工具)
SocketTool是一款功能强大的TCP/UDP Socket调试工具,版本为V2.2,它为开发者提供了便利的网络通信测试环境。Socket编程是计算机网络编程的基础,主要用于实现不同设备间的通信。这款工具能够帮助开发者模拟Socket...
Socket.IO和Socket.IO-Client是两个非常重要的库,主要用于实现实时双向通信,尤其是在Web开发领域。它们使得JavaScript客户端(浏览器)与Node.js服务器之间能够建立WebSocket风格的连接,提供了强大的实时通信解决...
在IT行业中,网络通信是至关重要的一个领域,而Socket编程是构建网络应用程序的基础。本资源“基于HPSocket实现socket通讯 - 修正版 ( C# demo 、 C++ dll )”提供了一种实用的方法,帮助开发者高效地实现跨平台的...
在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在需要实时通信或者低延迟的场景下,如游戏、聊天应用等。`io.socket`库是Android开发者常用来实现WebSocket和TCP/IP Socket通信的一个...
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 创建代理IPEndPoint IPEndPoint proxyEndpoint = new IPEndPoint(IPAddress.Parse(proxyHost), proxyPort);...
1. **集成Socket服务**:在Spring中集成Socket服务,我们通常会使用`java.net.ServerSocket`类来创建服务器端的Socket,并通过`java.net.Socket`处理客户端连接。为了将Socket服务与Spring框架结合,我们可以创建一...
Socket测试工具是网络编程中非常重要的辅助软件,主要用于检测和调试基于Socket协议的网络通信问题。Socket,也称为套接字,是应用层与传输层之间的接口,它允许应用程序通过TCP/IP协议进行数据交换。在开发网络应用...
在MATLAB环境中实现Socket通信是将强大的MATLAB计算能力与网络通信功能相结合的重要技术。Socket是一种网络编程接口,它允许程序之间通过网络进行双向通信。MATLAB提供了丰富的工具和函数来支持Socket通信,使得用户...
HPSocket是一款强大的网络通信组件,它为程序员提供了一套高效、稳定且易于使用的网络编程接口。这个组件包括了静态库HPSocket.lib和动态库HPSocket_D.lib,以及一系列必要的头文件,使得开发者可以在自己的项目中...
sokit socket调试 tcp udp for mac
而将UART与网络socket结合,可以实现串口数据与网络数据的互换,扩大通信范围,尤其适用于远程控制和监控系统。下面我们将深入探讨这个主题。 首先,`linux_uart___socket`标签表明我们关注的是在Linux操作系统中的...