套接字 之 windows与linux 差异

C++ Code


1
2
3
4
5
6
7
8
9
10
11
 
struct sockaddr_in  servAddr;//linux

SOCKADDR_IN     servAddr;//windows

mreq.imr_multiaddr.s_addr//linux

mreq.imr_multiaddr.S_un.S_addr//windows

int m = setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));//linux

int m = setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char FAR *)&mreq, sizeof(mreq));//windows 

时间: 2024-12-07 15:38:31

套接字 之 windows与linux 差异的相关文章

Linux编程设计——套接字

套接字 套接字,另外一种进程间通信的方式.之前的IPC机制只能限定在一台计算机系统上进行资源共享.而套接字接口可以使,一台机器上的进程和另外一个机器上的进程通信. 什么是套接字 套接字是一种通信机制,凭借这种机制,客户/服务器系统的工作即可以在本地单机上工作,也可以跨网络进行. 套接字和管道类型,同样是读写类文件描述符的操作.不同的是,套接字明确的将客户和服务器分开来.套接字机制可以实现多个客户连接一个服务器. 套接字连接 首先,服务器应用程序使用socket来创建一个套接字,它是系统分配给该服

Linux/UNIX套接字连接

套接字连接 套接字是一种通信机子.凭借这样的机制.客户/server系统的开发工作既能够在本地单机上进行.也能够夸网络进行. 套接字的创建和使用与管道是有差别的.由于套接字明白地将客户和server区分开来. 套接字连接: 首先,server应用程序用系统调用socket来创建一个套接字,它是系统分配给该server进程的类似文件描写叙述符的资源,它不能与其它进程共享. 接下来.server进程会给套接字起个名字.本地套接字的名字是Linux文件系统中的文件名称,对于网络套接字它的名字是与客户连

[转帖]在Linux中的使用 ss 命令检查套接字/网络连接

在Linux中的使用 ss 命令检查套接字/网络连接 https://linux.cn/article-4372-1.html 作者: Adrian Dinu 译者: LCTT geekpi | 2014-12-04 10:11   评论: 4 收藏: 7 分享: 13 ss是iproute2包的一部分(控制TCP/IP网络和流量的工具).iproute2的目标是替代先前用于配置网络接口.路由表和管理ARP表的标准Unix网络工具套装(通常称之为“net-tools”).ss工具用于导出套接字统

理解网络编程和套接字

编写“Hello world!”服务器端 服务器端(server)是能够受理连接请求的程序.下面构建服务器端以验证之前提到的函数调用过程,该服务器端收到连接请求后向请求者返回“Hello world!”答复.除各种函数的调用顺序外,我们还未涉及任何实际编程.因此,阅读代码时请重点关注套接字相关函数的调用过程,不必理解全部示例. hello_server.c 1.  #include <stdio.h> 2.  #include <stdlib.h> 3.  #include <

TCP/IP网络编程读书笔记-简单的套接字编程(1)

在linux和windows下都是通过套接字编程进行网络编程.不同的系统上通信有部分差别,现在刚开始学习,给自己学习的时候一个总结. 一,socket函数的套接字步骤 第一,linux网络编程中接受连接请求(服务器端)套接字的四个步骤: 1)调用socket函数创建套接字 2)调用bind函数分配IP地址和端口号 3)调用listen函数转为可接收请求状态 4)调用accept函数受理连接请求 第二,linux网络编程中请求连接(客户端)套接字的两个步骤: 1)调用socket函数创建套接字 2

进程-IPC 套接字 (四)

详见:https://github.com/ZhangzheBJUT/linux/blob/master/IPC(%E5%9B%9B).md 七 套接字 7.1. 套接字简介 之前所讨论的IPC机制都是依靠一台计算机共享系统资源实现的,这些资源可以是文件系统(命名管道).共享的物理内存(共享内存)和消息队列,这些只有运行在同一台机器上的进程可以使用. 伯克利版本的UNIX系统引入了一种新的通信工具-套接字接口(socket interface).一台机器上的进程可以通过使用套接字和另外一台机器上

阻塞的套接字与非阻塞的套接字

阻塞模式 Windows套接字在阻塞和非阻塞两种模式下执行I/O操作.在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该 函数所在的线程会阻塞在这里.相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行. 在阻塞模式的套接字上,调用任何一个Windows Sockets API都会耗费不确定的等待时间.图所示,在调用recv()函数时,发生在内核中等待数据和复制数据的过程. 当调用recv()函数时,系统首先查是否有准备好的数据.如

windows和linux套接字中的select机制浅析

先来谈谈为什么会出现select函数,也就是select是解决什么问题的? 平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好. 这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设置成非阻塞的,这样不管套接字上有没有数据都会立刻返回,可以重复调用recv函数,这种方式叫做轮询(polling),但是这样效率很是问题,因为,大多数时间实际上是无数据可读的,花费时间不断反复执行

Linux 网络编程——套接字的介绍

套接字是一种通信机制(通信的两方的一种约定),凭借这种机制,不同主机之间的进程可以进行通信.我们可以用套接字中的相关函数来完成通信过程. 套接字的特性有三个属性确定,它们是:域(domain),类型(type),和协议(protocol). 套接字的域 域指定套接字通信中使用的网络介质.最常见的套接字域是 AF_INET,它是指 Internet 网络,许多 Linux 局域网使用的都是该网络,当然,因特网自身用的也是它. 套接字类型 流套接字(SOCK_STREAM): 流套接字用于提供面向连