`
kris_feng
  • 浏览: 10146 次
社区版块
存档分类
最新评论

socket小记

阅读更多

 


               服务端:                                                                                                       客户端
  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_

    【标题】"HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_" 提供的知识点主要集中在使用C#编程语言实现基于TCP协议的Socket通信上,并且涉及到一个名为"HPSocket.Net"的库。HPSocket.Net是针对.NET...

    c#超级Socket库SuperSocket,SOCKET多线程编程

    **SuperSocket库详解** SuperSocket是一款高性能、轻量级的C# Socket服务器开发框架,它为开发者提供了构建基于TCP/IP协议的应用程序的便利工具。在.NET平台上,SuperSocket以其易于扩展和高度定制化的特性,成为了...

    SocketTool socket工具

    SocketTool是一款专为IT专业人士设计的实用工具,主要用于处理网络通信中的套接字(Socket)操作。套接字是计算机网络编程中的一个基本概念,它提供了进程间通信(IPC)和网络通信的能力,使得不同设备上的应用程序...

    SuperSocket Socket C# 通讯详细介绍

    **SuperSocket Socket C# 通讯详解** 在C#编程领域,网络通信是一个不可或缺的部分,而SuperSocket则是一个强大且易用的.NET Socket服务器框架。它为开发者提供了构建自定义网络应用服务的基础,使得处理TCP连接变...

    socket详解 socket详解 socket详解 socket详解

    Socket 编程详解 在网络编程中,Socket 是一个基本概念, plays a crucial role in building network applications. 在 C# 中,Socket 编程是通过使用 System.Net.Sockets 命名空间中的类和方法来实现的。下面,...

    socket池,socket

    Socket池和Socket连接池是网络编程中的重要概念,主要用于提高应用程序的性能和效率。在处理大量并发网络连接时,传统的单个Socket连接方式可能会导致系统资源的过度消耗,因此引入了Socket池技术。 Socket,全称是...

    SuperSocket-master_Socket基于TCP、UDP

    **SuperSocket:强大的.NET Socket框架** SuperSocket是一个高度可扩展且易于使用的.NET Socket服务端开发框架,它简化了基于Socket的网络应用开发过程。SuperSocket提供了丰富的API和强大的功能,使得开发者可以...

    SocketTool(很好用的socket测试工具)

    SocketTool(很好用的socket测试工具)

    SocketTool (TCP/UDP Socket 调试工具 V2.2)

    SocketTool是一款功能强大的TCP/UDP Socket调试工具,版本为V2.2,它为开发者提供了便利的网络通信测试环境。Socket编程是计算机网络编程的基础,主要用于实现不同设备间的通信。这款工具能够帮助开发者模拟Socket...

    socket.io,socket.io-client下载

    Socket.IO和Socket.IO-Client是两个非常重要的库,主要用于实现实时双向通信,尤其是在Web开发领域。它们使得JavaScript客户端(浏览器)与Node.js服务器之间能够建立WebSocket风格的连接,提供了强大的实时通信解决...

    基于HPSocket实现 socket 通讯 - 修正版 ( C# demo 、 C++ dll )

    在IT行业中,网络通信是至关重要的一个领域,而Socket编程是构建网络应用程序的基础。本资源“基于HPSocket实现socket通讯 - 修正版 ( C# demo 、 C++ dll )”提供了一种实用的方法,帮助开发者高效地实现跨平台的...

    Android安卓使用iosocket进行Socket通信简单封装优雅写代码

    在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在需要实时通信或者低延迟的场景下,如游戏、聊天应用等。`io.socket`库是Android开发者常用来实现WebSocket和TCP/IP Socket通信的一个...

    c# socket设置代理

    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 创建代理IPEndPoint IPEndPoint proxyEndpoint = new IPEndPoint(IPAddress.Parse(proxyHost), proxyPort);...

    spring集成socket服务

    1. **集成Socket服务**:在Spring中集成Socket服务,我们通常会使用`java.net.ServerSocket`类来创建服务器端的Socket,并通过`java.net.Socket`处理客户端连接。为了将Socket服务与Spring框架结合,我们可以创建一...

    socket test 测试工具

    Socket测试工具是网络编程中非常重要的辅助软件,主要用于检测和调试基于Socket协议的网络通信问题。Socket,也称为套接字,是应用层与传输层之间的接口,它允许应用程序通过TCP/IP协议进行数据交换。在开发网络应用...

    matlab环境下socket通信

    在MATLAB环境中实现Socket通信是将强大的MATLAB计算能力与网络通信功能相结合的重要技术。Socket是一种网络编程接口,它允许程序之间通过网络进行双向通信。MATLAB提供了丰富的工具和函数来支持Socket通信,使得用户...

    HPSocket.lib和HPSocket_D.lib和所需头文件

    HPSocket是一款强大的网络通信组件,它为程序员提供了一套高效、稳定且易于使用的网络编程接口。这个组件包括了静态库HPSocket.lib和动态库HPSocket_D.lib,以及一系列必要的头文件,使得开发者可以在自己的项目中...

    socket调试工具 socketTool

    sokit socket调试 tcp udp for mac

    uart_socket.zip_linux uart socket_uart socket 串口_uart socket_

    而将UART与网络socket结合,可以实现串口数据与网络数据的互换,扩大通信范围,尤其适用于远程控制和监控系统。下面我们将深入探讨这个主题。 首先,`linux_uart___socket`标签表明我们关注的是在Linux操作系统中的...

Global site tag (gtag.js) - Google Analytics