sockets 相关问题

双向进程间通信流的端点。这通常是指通过网络连接的流程,但决不限于此。不要与WebSocket(协议)或其他抽象(例如socket.io)混淆。

C# Socket 双连接?

我想知道,如果我在 C# 中创建一个套接字并将其连接到服务器,如果我在程序中创建一个线程来尝试与服务器进行另一个连接,服务器会看到来自...的 2 个连接吗?

回答 1 投票 0

即使未启用 Wi-Fi 并且只能在无线网络中访问服务器,在套接字上连接和发送也会成功 - Windows Mobile 6.5 - C/C++

我编写了一个小型 C/C++ Windows Mobile 6.5 客户端应用程序,它连接到服务器并向该服务器发送一些数据。服务器位于我的内部无线网络中,无法访问...

回答 1 投票 0

在套接字上连接和发送成功,即使未启用 WIFI 并且服务器只能在无线网络中访问 - Windows Mobile 6.5 - C/C++

我编写了一个小型 C/C++ Windows Mobile 6.5 客户端应用程序,它连接到服务器并向该服务器发送一些数据。服务器位于我的内部无线网络中,无法访问...

回答 1 投票 0

DatagramSocket 通知远程设备是否已连接?

我正在开发将传感器数据从Android设备发送到PC服务器的项目。我创建了两种连接方法:蓝牙和wifi。我想通知系统 Android 设备是否通过...

回答 1 投票 0

Socket.connect 在 Android 中不会抛出异常

如果我输入一个无意义的 url,则不会引发异常,并且我的其余代码都不会执行,甚至调用连接方法的异步任务的其余部分也不会执行。 尝试 { socketCliente.conn...

回答 2 投票 0

System.Net 套接字非常奇怪的自发断开连接

我有一个自发断开连接的 System.Net 套接字,特别是当我在 Visual Studio 2010 调试器中查询其状态两次时。 它的实例化如下: _TCPConn = 新套接字(

回答 1 投票 0

非阻塞 connect() 和 EINTR

我正在使用 Stevens 的 connect_nonb(),UNIX 网络编程: 整数 connect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec) { int 标志,n,错误; 袜子...

回答 1 投票 0

TCP客户端选择,连接后等待输入

我在使用 select 实现的简单 TCP 客户端时遇到了问题。 问题是,在第二个 printf 处,它仅在到达 connect() 函数之前显示,然后等待用户......

回答 1 投票 0

Android 应用程序因网络原因意外关闭

我正在开发我的第一个 Android 应用程序。截至目前,我的笔记本电脑上运行着一个小型服务器,并从 eclipse android 套件 (4.0.3) 的示例中获取了“Skeleton App”示例。我尝试添加一个

回答 1 投票 0

TCP 客户端连接功能的 C 问题

我在使用连接功能时遇到问题。这段代码将编译,但是当我运行该程序时,我收到一条错误,指出我传递了无效的连接参数。我已经尝试了一切...

回答 2 投票 0

__connect_no_cancel 阻塞并且服务器乱序获取数据

我有一个 TCP 服务器,使用 select 通过 TCP 套接字从客户端获取数据。 服务器消耗数据的速度很慢,而客户端的速度要快得多。我的客户端发送 8 个字节的数据,每次......

回答 2 投票 0

UDP套接字connect()在内核中做什么

UDP 的 connect() 函数让我感到惊讶。我在网上阅读并意识到它启用了不需要目标地址的 send() 函数。 我想知道到底是做什么的...

回答 1 投票 0

使用struct __sk_buff *skb从tc代码中获取PID

bpf.c 代码 #包括 #包括 #包括 #include“include/ip.h” #包括 #包括 bpf.c 代码 #include <linux/bpf.h> #include <linux/pkt_cls.h> #include <linux/if_ether.h> #include "include/ip.h" #include <linux/tcp.h> #include <linux/udp.h> #include "include/helpers.h" #include <linux/sched.h> #include <linux/socket.h> #include <linux/net.h> #include <linux/ip.h> #include <linux/in.h> #include <bpf/bpf_helpers.h> #include <bpf/bpf_endian.h> #define ETH_P_IP 0x0800 /* Internet Protocol Packet */ #define PROTO_TCP 6 #define PROTO_UDP 17 struct packetdets { __u32 source; __u16 source_port; __u32 dest; __u16 dest_port; __u8 ip_protocol; }; struct { __uint(type, BPF_MAP_TYPE_HASH); __type(key, struct packetdets); __type(value, __u64); __uint(max_entries, 1000); } pkt_count SEC(".maps"); SEC("tc_prog") int tc_main(struct __sk_buff *skb) { void *data_end = (void *)(__u64)skb->data_end; void *data = (void *)(__u64)skb->data; struct ethhdr *eth; struct iphdr *ip; struct tcphdr *tcp; struct udphdr *udp; // if (skb->protocol != bpf_htons(ETH_P_IP)) // return TC_ACT_OK; eth = data; if (data + sizeof(struct ethhdr) > data_end) return TC_ACT_OK; ip = data + 0; // ip = data + sizeof(struct ethhdr); if ((void *)ip + sizeof(struct iphdr) > data_end) return TC_ACT_OK; __u32 source = bpf_ntohl(ip->addrs.saddr); __u32 dest = bpf_ntohl(ip->addrs.daddr); if (dest == 3116855193){ return TC_ACT_SHOT; } //extract the port from tcp or ip headers __u16 source_port; __u16 dest_port; __u8 ip_proto; if (ip->protocol == PROTO_TCP) { tcp = (void *)ip + ip->ihl*4; if ((void *)tcp + sizeof(struct tcphdr) > data_end) { return TC_ACT_OK; } source_port = tcp->source; dest_port = tcp->dest; ip_proto = PROTO_TCP; } else if (ip->protocol == PROTO_UDP) { udp = (void *)ip + ip->ihl*4; if ((void *)udp + sizeof(struct udphdr) > data_end) { return TC_ACT_OK; } source_port = udp->source; dest_port = udp->dest; ip_proto = PROTO_UDP; } else { return TC_ACT_OK; } struct packetdets key = { .source = source, .source_port = source_port, .dest = dest, .dest_port = dest_port, .ip_protocol = ip_proto, }; __u64 *count = bpf_map_lookup_elem(&pkt_count, &key); if (count) { __sync_fetch_and_add(count, 1); } else { __u64 value = 1; bpf_map_update_elem(&pkt_count, &key, &value, BPF_ANY); } char hello_str[] = "hello pkt ipv4: %u"; bpf_trace_printk(hello_str, sizeof(hello_str), &skb->remote_ip4); return TC_ACT_OK; } char __license[] SEC("license") = "Dual MIT/GPL"; 这里我使用的是 tc/eBPF 代码。我使用以下命令附加它: #!/bin/bash go generate go build -o a.out main.go tc_bpfel.go sudo ./a.out 我想做的是实现类似的目标 struct packetdets { __u32 source; __u16 source_port; __u32 dest; __u16 dest_port; __u8 ip_protocol; __u32 pid, }; int tc_main(struct __sk_buff *skb) { int pid = (int)bpf_get_current_pid_tgid() >> 32; struct packetdets key = { .source = source, .source_port = source_port, .dest = dest, .dest_port = dest_port, .ip_protocol = ip_proto, .pid = pid, }; 我也想发送带有结构的pid。然后我从用户空间 go lang 代码中获取它。然后,我将使用 syscall 和获取的 pid 来终止一些连接。当我使用上述命令运行时: 我明白了 pegasus@pegasus:~/Documents/cilium-ebpf-tc$ ./build-and-run.sh /home/pegasus/Documents/cilium-ebpf-tc/bpf/bpf.c:49:47: warning: shift count >= width of type [-Wshift-count-overflow] 49 | int pid = (int)bpf_get_current_pid_tgid() >> 32; | ^ ~~ 1 warning generated. Compiled /home/pegasus/Documents/cilium-ebpf-tc/tc_bpfel.o Stripped /home/pegasus/Documents/cilium-ebpf-tc/tc_bpfel.o Wrote /home/pegasus/Documents/cilium-ebpf-tc/tc_bpfel.go /home/pegasus/Documents/cilium-ebpf-tc/bpf/bpf.c:49:47: warning: shift count >= width of type [-Wshift-count-overflow] 49 | int pid = (int)bpf_get_current_pid_tgid() >> 32; | ^ ~~ 1 warning generated. Compiled /home/pegasus/Documents/cilium-ebpf-tc/tc_bpfeb.o Stripped /home/pegasus/Documents/cilium-ebpf-tc/tc_bpfeb.o Wrote /home/pegasus/Documents/cilium-ebpf-tc/tc_bpfeb.go 2024/05/05 05:37:48 loading objects: field TcMain: program tc_main: load program: invalid argument: unknown func bpf_get_current_pid_tgid#14 (10 line(s) omitted) 网站快要破产了,别在这里打扰朋友,2024 年了,寻求 AI

回答 1 投票 0

在Win64下将SOCKET转换为int安全吗?

我正在开发 POSIX C++ 程序的 Windows 端口。 问题在于标准 POSIX 函数(如accept() 或bind())期望“int”作为第一个参数,而其WinSock 对应函数则使用“

回答 4 投票 0

客户端无法绑定到给定端口并连接到给定服务器[重复]

我需要我的客户端绑定到特定端口,然后连接到服务器。问题是,如果我成功绑定到给定端口,我将无法连接到服务器。如果我不尝试绑定...

回答 3 投票 0

Socket:Connect 将花费 2 分钟寻找 IP,然后超时。如何减少这个时间?

我想减少 socket:connect 查找要连接的 IP/端口所花费的允许超时时间?在某些使用 IP 10.0.0.x 的网络路由器(例如 Netgear)上,只需不到一秒即可

回答 2 投票 0

连接请求的输出不是原子的

我已经创建了一个套接字,并且正在尝试接受连接。一切正常。但是,输出让我对以下代码的工作原理感到困惑。 // 这是一个服务器程序 #inc...

回答 2 投票 0

Socket 程序给出“传输端点已连接”错误

我正在尝试创建一个非常简单的客户端-服务器聊天程序,其中两个程序可以相互通信。但是,接受函数给我错误“参数无效”。我已经过去了...

回答 2 投票 0

React js中Socket io触发事件两次

我面临一个问题。我的套接字 io 在客户端触发两次。我不知道这里有什么问题。 这是 src/socket.ts 文件中我的套接字配置代码 以及 mainlayu 中的套接字连接...

回答 1 投票 0

如何解决Python Sockets/SocketServer连接[Errno 10048]和[Errno 10049]?

我正在尝试制作一款在线 FPS 游戏,到目前为止它可以在我的本地网络上运行。我想做的是让它在全球范围内发挥作用 我过去曾尝试过让其他 Python 项目在全球范围内运行,但是......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.