标签: tcpclient

配置套接字ACK超时?

有没有办法配置套接字期望在发送数据确定连接失败之前收到ACK的超时?

我知道这也可以在应用程序级别完成,但是因为我发送的每个数据包都是ACK'd,我只是想知道我的数据是否被接收,使用应用程序级别的其他数据来完成相同的操作事情似乎很浪费.(更不用说,我的特定应用程序使用每字节带电的蜂窝链接.)

注意:根据我之前的问题 - 什么条件导致NetworkStream.Write被阻止?- 您不能依赖.Write抛出异常来确定数据未正确发送.

c# sockets network-programming tcpclient

15
推荐指数
2
解决办法
3779
查看次数

TCP\IP客户端 - EHOSTUNREACH(无主机路由)

我正在尝试开发客户端服务器TCP/IP应用程序.我的PC上运行了服务器,客户端应用程序正在移动设备上运行.它们都在同一个Wi-Fi网络中,但我无法在它们之间建立连接.调试客户端Android应用程序时显示以下错误:

09-21 01:08:40.422: W/System.err(8536): java.net.ConnectException: failed to connect to /192.168.15.115 (port 4449): connect failed: EHOSTUNREACH (No route to host)
09-21 01:08:40.453: W/System.err(8536):     at libcore.io.IoBridge.connect(IoBridge.java:114)
09-21 01:08:40.453: W/System.err(8536):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
09-21 01:08:40.453: W/System.err(8536):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
09-21 01:08:40.453: W/System.err(8536):     at java.net.Socket.startupSocket(Socket.java:566)
09-21 01:08:40.453: W/System.err(8536):     at java.net.Socket.tryAllAddresses(Socket.java:127)
09-21 01:08:40.453: W/System.err(8536):     at java.net.Socket.<init>(Socket.java:177)
09-21 01:08:40.453: W/System.err(8536):     at java.net.Socket.<init>(Socket.java:149)
09-21 01:08:40.453: W/System.err(8536):     at sabarish.example.client_mobile.MainActivity$1.onClick(MainActivity.java:61)
09-21 01:08:40.453: W/System.err(8536):     at android.view.View.performClick(View.java:3511)
09-21 01:08:40.453: W/System.err(8536):     at android.view.View$PerformClick.run(View.java:14105)
09-21 01:08:40.453: W/System.err(8536):     at android.os.Handler.handleCallback(Handler.java:605)
09-21 01:08:40.453: W/System.err(8536):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-21 …
Run Code Online (Sandbox Code Playgroud)

java android tcpclient

15
推荐指数
2
解决办法
8万
查看次数

如何在C#中使用Tor控制协议?

我正在尝试以编程方式将命令发送到Tor控制端口以使其刷新链.我无法在C#中找到任何示例,我的解决方案无法正常工作.请求超时.我运行了服务,我可以看到它在控制端口上监听.

public string Refresh()
{
    TcpClient client = new TcpClient("localhost", 9051);
    string response = string.Empty;
    string authenticate = MakeTcpRequest("AUTHENTICATE\r\n", client);
    if (authenticate.Equals("250"))
    {
        response = MakeTcpRequest("SIGNAL NEWNYM\r\n", client);
    }
    client.Close();
    return response;
}

public string MakeTcpRequest(string message, TcpClient client)
{
    client.ReceiveTimeout = 20000;
    client.SendTimeout = 20000;
    string proxyResponse = string.Empty;

    try
    {
        // Send message
        StreamWriter streamWriter = new StreamWriter(client.GetStream());
        streamWriter.Write(message);
        streamWriter.Flush();

        // Read response
        StreamReader streamReader = new StreamReader(client.GetStream());
        proxyResponse = streamReader.ReadToEnd();
    }
    catch (Exception ex)
    {
        // Ignore …
Run Code Online (Sandbox Code Playgroud)

.net c# network-programming tcpclient tor

14
推荐指数
2
解决办法
1万
查看次数

emacs elisp中的简单tcp客户端示例?

我正在尝试学习emacs elisp并尝试编写一个小程序来连接到TCP/IP端口并处理返回的记录.在一种情况下,我将解析CSV数据,而在另一种情况下,我将解析JSON(例如来自GPSD,而json.el谢天谢地附带了emacs).我查看了echo-server示例,但我正在寻找一个客户端示例,该示例显示了与make-network-process和处理面向行的数据的连接.它不是http,所以我不能同时使用url-retrieve-retrieve.

我的elisp技能非常弱,所以我正在寻找真正基本的例子.

谢谢!

emacs elisp tcpclient

12
推荐指数
3
解决办法
2563
查看次数

如何在Ruby中建立启用SSL的TCP/IP连接

我需要与我的服务器建立TCP连接,该服务器具有启用SSL的端口,我需要访问该端口.

我需要发送一个XML文件并从服务器获取响应.

在启用SSL之前,我能够使用下面提到的代码从服务器获取数据.

require 'socket'
myXML = 'test_xml' 
host = 'myhost.com'   
port = 12482               

socket = TCPSocket.open(host,port)  # Connect to server  
socket.send(myXML, 0)
response = socket.recvfrom(port)
puts response
socket.close
Run Code Online (Sandbox Code Playgroud)

现在我有一个'certi.pfx',我需要建立一个连接,发送my_xml数据并获得响应.如何才能做到这一点.

我还想知道我是否有'pem'和'key'文件,如何建立连接,发送my_xml数据并获得响应.

请帮忙.

ruby sockets tcpclient ssl-certificate tcp-ip

12
推荐指数
2
解决办法
1万
查看次数

通过tcp或套接字发送类型对象

我在为Xna制作的非常简单的游戏创建网络界面时遇到了麻烦.我只需要通过TCP客户端/ Socket发送对象.例如:我有一个名为"玩家"的班级.在每个播放器中,都有一个字段名称"Info",类型为"PlayerInfo".在客户端/服务器中,我需要将每个玩家的信息发送给每个客户,除了发送它的人(显然).这是一个简单的例子,但我需要用大约5-10个对象来做,再加上发送玩家更新(位置,动作......)有没有一种简单的方法来做TCP/Sock?注意:我会将我的知识评为C#并编程为6/10,因此如果您有解决方案,则无需解释所有内容(例如:变量和字段之间的区别).我也知道接口,库等...提前谢谢!

c# sockets tcpclient

12
推荐指数
2
解决办法
4万
查看次数

boost :: asio中的async_read()中的EOF

当async_read_some()返回EOF异常时,它意味着服务器停止发送数据,或者是否意味着连接已关闭.我有这种困惑,因为我无法找到一种方法来了解客户端是否已从服务器接收到所有数据.

c++ tcpclient boost-asio

12
推荐指数
1
解决办法
8668
查看次数

等待TcpClient数据可用的最佳方法?

while (TcpClient.Client.Available == 0)
{
    Thread.Sleep(5);
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

.net c# tcpclient

11
推荐指数
1
解决办法
2万
查看次数

循环直到TcpClient响应完全读取

我写了一个简单的TCP客户端和服务器.问题在于客户.

我在阅读服务器的整个响应时遇到了一些麻烦.我必须让线程休眠以允许发送所有数据.

我已经尝试了几次将此代码转换为一个循环,直到服务器完成发送数据.

// Init & connect to client
TcpClient client = new TcpClient();
Console.WriteLine("Connecting.....");
client.Connect("192.168.1.160", 9988);

// Stream string to server
input += "\n";
Stream stm = client.GetStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(input);
stm.Write(ba, 0, ba.Length);

// Read response from server.
byte[] buffer = new byte[1024];

System.Threading.Thread.Sleep(1000); // Huh, why do I need to wait?

int bytesRead = stm.Read(buffer, 0, buffer.Length);
response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Response String: "+response);

client.Close();
Run Code Online (Sandbox Code Playgroud)

.net c# stream tcpclient

11
推荐指数
1
解决办法
4万
查看次数

为什么NetworkStream会这样读?

我有一个应用程序,使用TCPClient和它的底层NetworkStream发送通过TCP套接字终止换行的消息.

数据从实时数据流每100ms流入大约28k用于监视.

我已经删除了不相关的代码,这基本上是我们读取数据的方式:

TcpClient socket; // initialized elsewhere
byte[] bigbuffer = new byte[0x1000000];
socket.ReceiveBufferSize = 0x1000000;
NetworkStream ns = socket.GetStream();
int end = 0;
int sizeToRead = 0x1000000;
while (true)
{
  bytesRead = ns.Read(bigbuffer, end, sizeToRead);
  sizeToRead -= bytesRead;
  end += bytesRead;

  // check for newline in read buffer, and if found, slice it up, and return
  // data for deserialization in another thread

  // circular buffer
  if (sizeToRead == 0)
  {
    sizeToRead = 0x1000000;
    end = 0;
  }
} …
Run Code Online (Sandbox Code Playgroud)

c# tcp stream tcpclient

11
推荐指数
2
解决办法
1730
查看次数