所以现在我只为我的客户端使用TCP - 它们连接到服务器,打开套接字并自由获取数据包.但是如果我决定在我的游戏中使用UDP呢?他们会不得不打开港口?例如,如果他们使用常规WiFi,我可以在没有开放端口问题的情况下将UDP发送到客户端吗?
谢谢.
我花了一整天时间在我的 Mac 和 iPhone 之间创建一个系统,我使用cocoaasyncsocket在我的 mac 上创建了一个监听服务器,在我的 iPhone 上创建了一个客户端。基本思想是在计算机打开时让 mac 上的应用程序运行,然后当我希望从 iPhone 应用程序传输数据时,启动应用程序并连接并发送数据......我让这个系统正常工作我希望它如何运行,但是我有一个问题,我总共花了大约 4 个小时试图解决这个问题!
我想创建一些东西,在侦听器运行的情况下为我的 mac 扫描我的无线网络……我认为这很简单,但我错了。我在此案上进行了高低搜索,但没有运气,我使用 stackoverflow 作为最后的手段。
我目前的计划是通过检索 iPhone 的内部 IP(即 192.168.1.94)来“自动扫描”,然后使用它来确定网络上的其他 IP(192.168.1.0-254),现在我知道 IP 是什么扫描我可以遍历每个并检查端口是否打开/我得到响应。
现在我想尽快做到这一点,但是我无法得到任何东西来给我准确的结果......
connectToAddress:error:在 cocoaasyncsocket 中使用只会为 255 个不同的 IP 地址中的每一个返回 true,所以我遇到的任何其他可达性函数也会如此......我读过这是因为他们只检查是否建立了连接并且不在乎另一端会发生什么,所以我需要考虑其他事情。
我唯一能想到的其他解决方案是 ping 每个内部 IP 并查看我是否得到响应,但我不确定这是否会占用太多时间而不得不通过 255 个 IP 地址......然后,一旦我得到哪些 IP 处于活动状态,我仍然必须检查端口是否以某种方式打开:/
如果这里有人知道如何完成或有更好的想法如何检查开放端口(我不太擅长网络),我将非常感激。
谢谢阅读,
利亚姆
我需要找到一个可以与“snmpwalk”一起使用的 OID,它描述了我的机器(本地主机)上哪些 TCP/UDP 端口是开放的和可用的
一个类似的帖子(这里)关于这个是使用:
snmpwalk -v2c -c 公共本地主机 tcpConnState
snmpwalk -v2c -c 公共本地主机 udpLocalAddress
但据我所知,这现在只显示打开的连接?无论如何,我的实验室因使用这些而被纠正错误。
是否有任何其他 OID 可以显示可用的 TCP/UDP 端口?
(我在 Ubuntu 中使用终端)
我怎样才能创建一个透明地转发连接到新IP地址/端口的程序?
例如,如果客户端发起TCP连接的IP地址为111.111.111.111,TCP端口为111,则可以将程序配置为转发该数据包和IP /端口222.222.222.222:222.
透明地,我的意思是:
我想用.NET,C#和Windows来做这件事.但我不想创建一个简单的TCP代理,因为各种各样但未指明的原因.如果无法做到这一点,那么在没有可能的解决方案的情况下,这可能是一个可接受的答案.
以下哪个端口是用于程序的最佳端口.我正在使用仍在开发中的自定义协议.我正在寻找几乎每个连接到公共互联网的主机都可以访问的主机(也就是说,每个可以查看网站的主机都可以使用这个端口).三个主要选项是:
哪些可以通过Internet最广泛地访问,包括所有ISP,企业防火墙等.
我有这个套接字服务器脚本,
import SocketServer
import shelve
import zlib
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.words = shelve.open('/home/tipu/Dropbox/dev/workspace/search/words.db', 'r');
self.tweets = shelve.open('/home/tipu/Dropbox/dev/workspace/search/tweets.db', 'r');
param = self.request.recv(1024).strip()
try:
result = str(self.words[param])
except KeyError:
result = "set()"
self.request.send(str(result))
if __name__ == "__main__":
HOST, PORT = "localhost", 50007
SocketServer.TCPServer.allow_reuse_address = True
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)
而这个接收器,
from django.http import HttpResponse
from django.template import Context, loader
import shelve
import zlib
import socket
def index(req, param = ''):
HOST = 'localhost'
PORT = 50007
s = socket.socket(socket.AF_INET, …Run Code Online (Sandbox Code Playgroud) 我需要从Python地址和端口获取协议(HTTP,FTP,SSMTP,IMAP,ETC).
例:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
protocol = s.connect( ("localhost", 80 )
print protocol #print HTTP
Run Code Online (Sandbox Code Playgroud) 我需要找一个端口Ex.端口8080在Linux系统上打开.我正在寻找一个C或C++ API调用,它将返回true或false,或者在给定端口号时返回等效项.这只需要在本地运行.我不想知道是否有一个进程在端口上侦听,只是防火墙没有阻止它.
我想做相同的
if( ! IsPortOpen(8080))
cout << "please request IT to open port 8080 before running this tool";
exit(1);
}
Run Code Online (Sandbox Code Playgroud) 连接到在本地运行的远程服务结构集群(而不是在Azure上)时,使用Connect-ServiceFabricClusterPowerShell命令连接到网络连接的虚拟机时,我被错误阻止:
WARNING: Failed to contact Naming Service. Attempting to contact Failover Manager Service...
WARNING: Failed to contact Failover Manager Service, Attempting to contact FMM...
False
WARNING: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 192.168.1.102:19000
Connect-ServiceFabricCluster : No cluster endpoint is reachable, please check if there is connectivity/firewall/DNS issue.
At Install.ps1:3 char:1
+ Connect-ServiceFabricCluster -ConnectionEndpoint "FABRICTESTSRV:19000" …Run Code Online (Sandbox Code Playgroud) powershell ports windows-firewall azure azure-service-fabric
我正在尝试在python中构建DNS服务器.它必须侦听两个端口(8007 - 客户端,8008 - 管理员).客户端仅发送URL并接收相应的IP.管理员有权更改DNS表(添加,删除,...现在对此无关紧要).
所以我的问题是:如何在两个端口上连续监听服务器以获取任何最终请求(我们可以同时拥有多个客户端,但只有一个管理员在运行时)
我的服务器有一个监听端口:
来自SocketServer import*from threading import*from string import*import socket
class Server(ForkingMixIn, TCPServer): pass #fork for each client
class Handler(StreamRequestHandler):
def handle(self):
addr = self.request.getpeername()
print 'Got connection from', addr
data=(self.request.recv(1024)).strip()
if data not in dic: #dic -> dictionary with URL:IP
self.wfile.write('0.0.0.0')
else:
self.wfile.write(dic.get(data))
server = Server(('', 8007), Handler)
server.serve_forever()
Run Code Online (Sandbox Code Playgroud) 我的server.js似乎是正确的..
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "mysite.com");
console.log('Server running at mysite.com:1337/');
Run Code Online (Sandbox Code Playgroud)
我的客户的肉在下面.
function init() {
// Connect to Web Socket.
// Change host/port here to your own Web Socket server.
ws = new WebSocket("ws://mysite.com:1337");
// Set event handlers.
ws.onopen = function() {
output("onopen");
};
}
Run Code Online (Sandbox Code Playgroud)
如果我去http://www.mysite.com:1337我正确收到Hello World!但是,当我尝试使用我的客户端连接,并在Fire bug中调试时,我得到以下输出.
[WebSocket] connected
[WebSocket] request header: GET / HTTP/1.1 Upgrade: WebSocket Connection: Upgrade Host: mysite.com:1337 Origin: http://www.mysite.com Cookie: Sec-WebSocket-Key1: 115 17 p^!x-93 …Run Code Online (Sandbox Code Playgroud) 考虑一个非常基本的python套接字,它在主机上打开一个到Internet的端口,并监听在终端中显示的传入消息.
像这样保持港口大开被认为是相当脆弱的,对吗?我应该实现哪些安全功能?是否应该对传入的数据进行消毒?解决这个问题的最佳方法是什么?
谢谢.