socket多网卡编程(tcpip socket编程)
如何选择网卡进行socket编程
1.最简单的方法:
public?static?String?reverse1(String?str)
{
???return?new?StringBuffer(str).reverse().toString();
}
2.最常用的方法:
public?static?String?reverse3(String?s)
?{?
???char[]?array?=?s.toCharArray();?
??String?reverse?=?"";??//注意这是空,不是null
???for?(int?i?=?array.length?-?1;?i?=?0;?i--)?
???reverse?+=?array[i];?
???return?reverse;?
??}?
3.常用方法的变形:
?public?static?String?reverse2(String?s)
{?
??int?length?=?s.length();?
???String?reverse?=?"";??//注意这是空,不是null
???for?(int?i?=?0;?i??length;?i++)?
????reverse?=?s.charAt(i)?+?reverse;//在前面连接,??而非常见的后面
???return?reverse;?
??}?
4.C语言中常用的方法:
?public?static?String?reverse5(String?orig)
{?
??char[]?s?=?orig.toCharArray();?
??int?n?=?s.length?-?1;?
??int?halfLength?=?n?/?2;?
??for?(int?i?=?0;?i?=?halfLength;?i++)?{?
????char?temp?=?s[i];?
???s[i]?=?s[n?-?i];?
???s[n?-?i]?=?temp;?
???}?
???return?new?String(s);??//知道??char数组和String相互转化
??}

关于win socket 绑定多网卡
用ifconfig /all命令能够列出目前本机所有的IP地址,用popen("ifconfig /all")可以从匿名管道中读取这些信息。在绑定时,假如特定网卡IP地址为192.168.0.122,那么这样写可以绑定到这个IP低地址上:
sockaddr_in h; memset(h, 0, sizeof(h));
h.sin_family = AF_INET; //内部网络协议TCP\UDP等
h.sin_port = htons(80); //端口号,这里用了80
h.sin_addr.s_addr = inet_addr("192.168.0.122");//绑定到指定IP上
SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if (SOCKET_ERROR = bind(s,(sockaddr*)h,sizeof(h))==0)
{
MessageBox("失败!");
}
在windows下用C语言如何实现socket网络编程,需要用到哪些头文件或者库?
需要用到的头文件包含:
#include winsock2.h
#include windows.h
与Linux环境下socket编程相比,windows环境多了一个步骤:启动或者初始化winsock库
Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据通信。具有两个版本:
Winsock 1:
Windows CE平台支持。
头文件:WinSock.h
库:wsock32.lib
Winsock 2:
部分平台如Windows CE貌似不支持。通过前缀WSA可以区别于Winsock 1版本。个别函数如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都属于Winsock 1.1规范的函数;
头文件:WinSock2.h
库:ws2_32.lib
mswsock.h用于编程扩展,使用时必须链接mswsock.dll
扩展资料
winsock库的加载与卸载:
加载:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
加载成功,返回值为0。
WORD wVersionRequested:加载的winsock版本,使用宏MAKEWORD(x, y),x表示高字节,y表示低字节。然而使用时MAKEWORD(2, 2)。高字节与低字节相同~~
LPWSADATA lpWSAData:WSADATA结构的指针,传入参数后,系统帮助我们填充版本信息。有兴趣的可以看看结构体内容,不过基本用不着。
卸载:int WSACleanup(void);比起加载,卸载的函数真是轻松愉快。
一台主机有两个网卡。socket()编程如何指定别的客户端与本主机的其中一个网卡通讯?
每个网卡都是有自己ip地址,socket编程时,只需操作这个ip,就可以了。
服务端先返回指定的ip地址,可以端根据这个ip地址重新建立连接。这样应该可以了。
求助SOCKET 双网卡 C语言编程问题
需要建立两个SOCKET吗?socket1绑定IP1和端口5060,socket2绑定IP2和端口5060,socket1进行内网(网卡1)的收发UDP包,socket2对外网(网卡2)收发UDP包,这样会有问题吗?
问题2:如果还是bind INADDR_ANY的话,能收到所有的包,但是发送时,我希望需要发送到192.168.103.1网段的通过网卡1走,对方收到的地址为IP1(192.168.103.110),发送到172.16.0.1网段的通过网卡2走,对方收到的地址为IP2(172.16.0.100),请问达到这种效果的话,需要怎么做?
socket网络编程
客户端与服务端通过socket套字节连接后都会返回一个实例对象,分别保存这个对象,就相当于保存的对方的地址。不同的客户端连接到服务器,得到的对象都是不同的。服务端要发信息直接拿这个对象进行操作就可以了。
很久没写了,具体名称记不起来了,思路就是这样的