套接字客户/服务器应用程序在互联网上不工作,尽管已打开端口
我已经使用C#.NET插座编程了TCP/IP服务器.使用本地网络可以正常工作,但是当我尝试通过Internet使用它时,客户端无法连接到服务器. 我敢肯定,我已经在路由器和Windows防火墙(既包括客户端和服务器)中打开了端口(14999),我还将计算机端口14999映射到了路由器上的一个. 即使这样,我也得到了"现有公司 远程主机强行关闭了nnection. 我注意到了一件事. 当我将服务器与Visual Studio进行调试时,并且使用 http://http://www. YougetSignal.com/tools/open-ports/要检查14999端口,该代码登上了断点. 我一直被我们陷入困境,有人知道我该怎么办吗? 非常感谢大家! 这是我的客户端应用代码: using System; using System.Collections.Generic; using System.Linq; using System.Text;
12 2024-04-26
编程技术问答社区
简单的 TcpListener 挂接
这是我正在尝试的代码:(这仅是为了学习TCP的工作原理.)在我的PC上: listener = new TcpListener(IPAddress.Any, 3000); listener.Start(); using (TcpClient client = listener.AcceptTcpClient()) ... 以及在ASP.NET按钮的事件处理程序中的服务器上: using (var wc = new MyWebClient()) { byte[] received = wc.UploadData("http://my ip here:3000", new byte[] { 1 }); Label1.Text = Encoding.UTF8.GetString(received); } 我禁用所有防火墙,在PC上运行第一个代码,然后单击页面的按钮(在浏览器中)运行第二个代码. 第一个只是等待其最后一行.为什么?它应该收到请求.
14 2024-04-26
编程技术问答社区
如果服务器在连接过程中关闭/崩溃,重置TCP连接
我有一个TCP连接如下: public void ConnectToServer() { string mac = GetUID(); while(true) { try { tcpClient = new TcpClient("xx.x.xx.xxx", xxxx); networkstream = new SslStream(tcpClient.GetStream()); networkstream.AuthenticateAsClient("xx.x.xx.xxx"); networkstream.Write(Encoding.UTF8.GetBytes("0002:" + mac + "\r\n")); networkstream.F
10 2024-04-26
编程技术问答社区
接收多个不同的消息 TcpListener C#
嗨,我一直在尝试学习如何使用TCPLISTENER和套接字在客户端服务器之间发送一些简单的短信.我已经阅读了许多似乎正在显示如何读取_ buffer的线程,以确保循环以确保读取整个消息.但是,我似乎无法弄清楚如何在收到第一条消息之后获得第二个消息.我可以很好地连接到服务器,我可以收到第一条消息.但是,如果我再次点击客户端上的"发送"按钮,则没有消息到服务器.这是我的代码: // SERVER APPLICATION: ----------------------------------------------- namespace TCP_Server { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnStartServer_Click(
12 2024-04-26
编程技术问答社区
C# TCP客户端监听数据
我想连接到工作中的特定条形码读取器,但目前我面临一些问题,以了解TCP流读数如何与C#一起使用. 我在Stackoverflow上寻找了许多代码示例,正如我所看到的,人们经常打开连接,发送命令然后要求答复. 重点是,条形码读取器只接受TCP连接,然后与我的数据一起发送数据. 我想找到使用TCPCLIENT或NetworkStream以连续方式读取数据的最有效方法.我的意思是,我想在传入时聆听数据,但同时又处理了许多其他事情. 我在想知道简单的TCP库是否像具有连接函数的库一样,当您接收数据时触发事件(带有定界符或长度). 谢谢 解决方案 我终于找到了一个简单的TCP库,称为 simpletcp .我可以使用以下代码行连接到我的网络条形码读取器:g_Client.Connect(ip, port); 然后有一个可用的事件,称为datareceived(g_Client.DataReceived += l_Client_DataReceived;)
16 2024-04-26
编程技术问答社区
为什么我不能再向监听套接字发送?
我正在为C#中的在线游戏编写一个简单的代理(更多数据包记录器). 基本登录过程是这样的: client->服务器:登录数据包 - 我的代理接收数据包,显示并将其发送到服务器. 服务器 - >客户端:连接!数据包 - 我的代理再次收到数据包,它也再次显示它,但是当试图将其发送给客户时,它说: "由于未连接插座,并且(使用sendto呼叫在数据报套接字上发送时,请求发送或接收数据的请求),没有提供地址." 我的代码: http://lesderid.pastebin.com/nkey.com/nkey.nkey.7qqp 解决方案 171: listenSocket.Send(RecvBuffer2); 您不应该尝试发送此听力插座.您需要发送使用Endaccept()创建的套接字. (您的代码中的winsock2-但是您需要以不同的方式范围.) 其他解决方案 侦听TCP插座具有一个功能 - 接受客户端连接.该连接将占据a 新套接字描述符,即为每个新客户
8 2024-04-26
编程技术问答社区
在Windows服务中托管的WCF服务通过net tcp运行
在我的项目中,我有一个在Windows服务中托管的WCF服务.我通过netTCPBinding在Windows服务中托管了WCF服务,并安装了Windows服务.为了在我的Silverlight项目中访问WCF服务,我添加了WCF的服务参考. 但是,当我在WCF服务中调用一种方法时,会收到以下错误: 无法连接到 net.tcp://localhost:8732/wcfhost/. 连接尝试持续了一段时间 00:00:03.2951885. TCP错误代码10013:尝试 以一种禁止的方式访问插座 它的访问权限.. 可能是 由于尝试访问服务 以跨域的方式 服务未配置 跨域访问.您可能需要 联系服务的所有者 暴露插座跨域政策 通过HTTP并在 允许的插座端口范围4502-4534. 请帮助我. 解决方案 对于相同的机器连接而不是使用命名的管道绑定. 如果您向我们展示了您的服务和客户端端点配置,这可能会有所帮助. 编辑:在阅读了一些错误之后(此处在其他站点
18 2024-04-26
编程技术问答社区
从TcpClient.GetStream()读取而不知道长度
我正在制定TCP基础通信协议.我所知 有很多方法可以确定何时结束阅读. 关闭消息末尾的连接 将消息的长度放在数据本身之前 使用分离器;在普通数据中永远不会发生的某些值(或以某种方式逃脱) 通常,我正在尝试通过WiFi网络发送文件(这可能是不稳定且低速) RSA和AES通信的原因我不喜欢每次关闭连接(不能使用1 ) 这是一个我无法预测其长度的大文件,所以我无法采取行动 作为方法(不能使用2 ) 在阅读和逃脱时,在写作需要大量过程时检查并逃脱了一些东西(不能使用3 ) 此方法应与C#和Java兼容. 您的建议? 更一般的问题: 如何识别Java InputStream的终点/p> c#-tcpclient-tcpclient-检测流的末端? 更多的iformation 我正在编码TCP客户端服务器通信 首先,服务器生成并将RSA公共代码发送给客户端. 然后,客户端将生成AES(键,iv)并使用RSA加密发送回去.
8 2024-04-26
编程技术问答社区
使用Modbus RTU协议提取寄存器
我是使用Modbus协议的新手.我有一个媒体转换器设备( usr -w610 ),我正在测试与Modbus Poll和ModScan ProgramSto的连接验证我正在获取日志.我在设备上有这些设置. 使用TCP协议和端口502 根据这些配置,我在modscan中配置以下字段 我配置了设备ID = 240,然后选择" 03.保持寄存器"以读取数据,但是我还是收到以下消息"非初始化",后来"收到对Modbus Query的无效响应",有人可以帮助我吗?有什么想法吗? 类似地使用" modbus poll"我收到以下消息: 解决方案 我正在研究通过RS232或RS485连接到USR IoT单元的Modbus RTU设备的假设(您没有在问题中提及该设备).从您的屏幕截图中,USR-W610以透明的mod("数据传输模式")运行;来自 在此工作模式下,W610可以在串行侧和网络侧之间建立双向连接.该连接是透明的传输.可以在网络中接收来自串行设备的数据,也可以将
12 2024-04-26
编程技术问答社区
通过TCP/IP发送文件 .NET CF
我想从Windows Mobile 6.5设备将文件(" Label.prn")发送到打印机. 这是通过TCP/IP发生的. 我已经意识到此应用程序是对普通桌面客户的测试.这非常简单.只需通过TCP套接字发送文件,打印机可以完成其作业. 这是桌面客户端演示(效果很好): 私有void buttonsend_click(对象发送者,EventArgs e) { TcpClient client = new TcpClient(AddressFamily.InterNetwork); client.Connect(IPAddress.Parse("192.168.1.5"), 6101); if (client.Connected) { client.Client.SendFile("C:\\Label.prn"); client.Close();
16 2024-04-26
编程技术问答社区
接收正确的数据量 TCP
我正在使用C#培养TCP async服务器,并且我正在努力从正确的方式接收正确的数据. 我的问题是:由于TCP是流协议的性质,在收到的每个消息的末尾都没有定界符,所以我唯一可以做的就是在消息的开头添加即将到来的消息大小并因此做出反应;问题是,我该如何播放并确保我不阅读流中的"下一个"消息? 我的伪代码看起来像这样: // client accepted, begin receiving client.BeginReceive(state.buffer, 0, StateObject.bufferSize, 0, new AsyncCallback(_cbck_Read), state); private void _cbck_Read(IAsyncResult ar) { StateObject state = (StateObject)ar.AsyncState; Socket client = state.clientSocket;
16 2024-04-26
编程技术问答社区
TcpClient-如何连接到一个外部IP地址?
我一直在尝试设置一个基本方案,其中a TcpClient在同一台计算机上连接到TcpListener,但到目前为止,它仅适用于127.0.0.1和192.168.X.Y.这是我的代码: var server = new TcpListener(IPAddress.Any, 51328); server.Start(); var client = new TcpClient(); client.ConnectAsync(IPAddress.Parse("address from whatismyip"), 51328); server.AcceptTcpClient(); // hangs indefinitely here Console.ReadKey(); 我从 whatemyip 中获得了外部地址,但我不确定我是否正确地进行了操作.我的过程不正确吗? 解决方案 我假设您正在尝试通过Internet连接?如果您是通过像Comcast这样的互联网提供商连接的
10 2024-04-26
编程技术问答社区
IP还是Winsock拦截?
我们有一个终端仿真器(它比这更重要,但是对于一个问题,它可以最好地描述它...),而不是重写它,而是引入了端口代理.代理倾听至127.0.0.1循环返回,并使用SSL进行连接并对其进行加密. 我需要做的是从本地计算机进入代理之前从本地计算机中获取数据,以便我们可以检查并停止或更改它.我无法更改当前设置的配置,因此我需要在发送数据之前找到获取数据的方法.可以使用Winsock完成此操作吗?还有其他方法吗? 谢谢 解决方案 a 分层服务提供者如果这对您有用,那将会更快 其他解决方案 您可能可以尝试使用 fiddler 听取127.0.0.0.1 其他解决方案 您应该使用一些Win32 API钩库. 也许 easyhook 或 Microsoft Detours .
12 2024-04-26
编程技术问答社区
连接到UWP应用程序中运行的TCP服务器
我正在尝试从UWP应用程序运行TCP服务器.但是,我无法从另一个应用程序(同一PC上运行的)连接到服务器.我尝试使用telnet命令. 如果我在命令行应用程序中,在UWP应用程序中使用它,则此片段可以正常工作,但它确实执行了,但永远不会得到任何连接请求. TcpListener serverSocket = new TcpListener(System.Net.IPAddress.Parse("127.0.0.1"), 3457); int requestCount = 0; TcpClient clientSocket = default(TcpClient); serverSocket.Start(); Console.WriteLine(" >> Server Started at " + serverSocket.LocalEndpoint); while (!serverSocket.Pending()) ; //The App will loop inf
6 2024-04-26
编程技术问答社区
UDP插座C#.NET
我正在使用.NET中的UDP套接字;特别是我制作了一个程序,该程序由UDP套接字从图片框发送到其他程序. 这是代码: 这是插座从端口8000接收图像的听众部分 private void Listening() { IPEndPoint ipep = new IPEndPoint(IPAddress.Loopback, 8000); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); newsock.Bind(ipep); int recv; IPEndPoint sender1 = new IPEndPoint(IPAddress.Parse("
12 2024-04-26
编程技术问答社区
System.Net.Sockets是否与针对iOS的Unity兼容?
我创建了一个Unity应用程序,该应用程序使用System.net.sockets与单独的服务器计算机进行TCP通信.该应用程序在编辑器中和为Android或PC构建时完美无瑕.但是,当我尝试在MacBook上创建iOS构建时,应用程序会正确加载,但是没有进行网络通信. 接下来,我创建了开发人员构建,但是在运行时没有出现错误或警告,它只是没有连接到服务器.我确保仔细检查它们是否在同一网络上,并且端口设置正确. 我目前正在调试和查看文档,但是我还没有看到任何说明System.net.sockets与iOS不兼容的东西.回答以下问题后,我可以上传代码段/询问有关特定代码的新问题. Unity支持System.net.sockets iOS是否有?为iOS构建网络项目时,是否需要做些唯一的事情? 谢谢您的时间和帮助! 解决方案 一个快速的可悲答案: Unity中的System.net.sockets在iOS/Android builds中起作用是时代的最大
20 2024-04-26
编程技术问答社区
向服务器发送多条信息?C#
我有一个快速而肮脏的问题.因此,就目前而言,我有两个客户端,并且一个服务器正在运行.我可以将消息从客户端传达到服务器的情况下,没有任何问题.当我想从客户端阅读两条消息时出现我的问题 - 而不仅仅是一条消息. 我收到的错误是:ioexception没有得到治疗.无法从传输连接中读取数据:现有连接被远程主机强行关闭. 这是我在服务器端的代码: 私有静态void handleclientComm(对象客户端) { /**创建一个包含数据库文件对象的列表**/ 列表thedatabase =新列表(); TcpClient tcpClient = (TcpClient)client; NetworkStream clientStream = tcpClient.GetStream(); byte[] message = new byte[4096]; int bytesRead; do
16 2024-04-26
编程技术问答社区
如何通过TCP连接获取GPS设备数据GT06 CONCOX协议
从GPS设备接收数据: 我有一个TCP服务器设置,该设置正在从各种GPS跟踪器(GT06)接收数据.每个GPS设备启动请求,服务器接受并开始接收NMEA数据. 问题是GPS连接到服务器错误时:"现有连接被远程主机强行关闭" 问题是我不知道如何通过GPRS/TCP连接从GPS接收数据. 有什么建议吗? using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; namespace T1 { class Program { public class StateObject { public const int DE
14 2024-04-25
编程技术问答社区
TCP段消失
我遇到了一个谷歌搜索似乎无法解决的问题.为了简单起见,我有一个用C#编写的客户端,并且在C中写了Linux的服务器.客户端以100次循环调用(缓冲区).问题在于服务器仅接收十几个.如果我放着足够大的睡眠,那么一切都很好.缓冲区很小 - 约30B.我读到了关于Nagle的算法和ACK延迟的信息,但没有回答我的问题. for(int i = 0; i
14 2024-04-25
编程技术问答社区
难以解释TcpClient的延迟
我正在从瘙痒协议服务器接收大量数据(频繁的小消息). 我的应用程序效果很好,因为所有消息均已正确解析.但是,当(据我所知)除了代码设置为" ReadByte"外,我会得到神秘的延误. . TcpClient simpleTcp = new TcpClient(serverAddress, serverPort); simpleTcp.NoDelay = true; simpleTcp.Client.NoDelay = true; simpleTcp.Client.ReceiveBufferSize = 1024; simpleTcp.ReceiveBufferSize = 1024; simpleTcp.ReceiveTimeout = 5000; NetworkStream tcpStream = simpleTcp.GetStream(); //Send login and subscciptions... while (
18 2024-04-25
编程技术问答社区