套接字编程中的AF_INET和PF_INET有什么区别? 我在使用socket()和bind() AF_INET和PF_INET之间感到困惑。 另外,如何在sin_addr字段中给ip地址?
我运行一个Express js应用程序与socket.io为一个聊天的Web应用程序,我得到了以下错误在24小时内大约5次随机。 节点进程被永久封装,并立即重新启动。 问题是,重新启动快速将我的用户踢出他们的房间,没有人愿意。 Web服务器由HAProxy代理。 没有套接字稳定性问题,只使用websocket和flashsockets传输。 我无法重现这个故意。 这是节点v0.10.11的错误: events.js:72 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET //alternatively it sa 'write' at errnoException (net.js:900:11) at TCP.onread (net.js:555:19) error: Forever detected script exited with code: 8 error: Forever restarting script for 2 time 编辑(2013-07-22) 添加了socket.io客户端error handling程序和未捕获的exception处理程序。 似乎这个错误发生了: process.on('uncaughtException', function (err) { console.error(err.stack); console.log("Node NOT […]
在C中,我明白,如果closures一个套接字,这意味着套接字将被破坏,并可以在以后重新使用。 如何关机? 说明中说,它closures了该sockets的一半双工连接。 但是,将这个套接字像close系统调用一样被销毁?
File "C:\Users\Administrator\Documents\Mibot\oops\blinkserv.py", line 82, in __init__ self.serv = socket(AF_INET,SOCK_STREAM) TypeError: 'module' object is not callable 为什么我得到这个错误? 我很困惑。 你需要知道什么来回答我的问题?
我正在开发一个Phonegap + React.js和Socket.io的应用程序。 然而,React-Native被释放,本地的感觉是惊人的。 我试图让socket.io客户端与React Native工作,但不幸的是没有太多的成功。 我做了一些研究,并得到了与本问题中所述完全相同的错误: https : //github.com/facebook/react-native/issues/375 关于这个问题的评论说,尝试使用获取API来获取JS模块,但我认为我做错了: var socketScript; fetch('../../../socket.io-1.2.0.js') .then(function(response) { socketScript = response._bodyText; }).done(function() { var socket = socketScript.io(); }); 这返回一个undefined不是一个函数 。 有什么办法让socket.io-client与React Native一起工作吗? 还是我看着这个错误的方式? 也许还有其他更合适的解决scheme?
当我尝试接收大量的数据时,它会被切断,我必须按回车才能获得其余的数据。 起初,我能够增加一点,但它仍然不会收到全部。 正如你所看到的,我已经增加了conn.recv()的缓冲区,但是它仍然没有得到所有的数据。 它在某个点上切断它。 我必须在我的raw_input上按回车才能接收其余的数据。 无论如何,我可以一次获得所有的数据吗? 这是代码。 port = 7777 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('0.0.0.0', port)) sock.listen(1) print ("Listening on port: "+str(port)) while 1: conn, sock_addr = sock.accept() print "accepted connection from", sock_addr while 1: command = raw_input('shell> ') conn.send(command) data = conn.recv(8000) if not data: break print data, conn.close()
我正在使用证书和私钥 $ctx = stream_context_create(); stream_context_set_option($ctx, 'ssl', 'local_cert', $certfile); stream_context_set_option($ctx, 'ssl', 'passphrase', $pass); $fp = stream_socket_client('ssl://gateway.xyz.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 它在我的本地XAMPP服务器上运行,但它不在外部服务器上工作: 警告:stream_socket_client()[function.stream-socket-client]:无法连接到/home/biranchi/public_html/push.php中的ssl://gateway.sandbox.push.apple.com:2195(连接超时)在线42 无法连接110 什么是错误? 我是否需要更改服务器中的某些设置?
我试图绑定我的套接字(服务器套接字)端口号8000 。 它为我工作和做了这项工作。 在代码结束时,我也closures了套接字。 我再次运行我的代码的瞬间,它告诉我,该地址已被使用。 我打印了错误值strerror(errno);的含义strerror(errno); 看看我的代码在每个点上是否正常工作。 要检查端口是否空闲,我使用netstat检查了它,但是显示端口号8000是空闲的。 它发生在我身上很多次了。 每次我再等几秒钟,然后再开始工作。 我正在使用c语言。 那么他的操作系统对于这种行为的理由是什么呢? 几秒钟后,我运行代码,然后工作。 anirudh@anirudh-Aspire-5920:~/Desktop/testing$ sudo ./a.out Socket Creation: Success File open: Success Socket Bind: Address already in use Socket Listen: Address already in use ^C anirudh@anirudh-Aspire-5920:~/Desktop/testing$ sudo netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp […]
我一直在为此而苦苦挣扎,无法find我的代码无法正确读取我写的TCP服务器的原因。 我正在使用TcpClient类和它的GetStream()方法,但没有按预期工作。 无论是操作块无限期(最后一次读取操作没有按预期超时),或数据被裁剪(出于某种原因,读取操作返回0并退出循环,也许服务器没有足够快的响应)。 这是实现这个function的三个尝试: // this will break from the loop without getting the entire 4804 bytes from the server string SendCmd(string cmd, string ip, int port) { var client = new TcpClient(ip, port); var data = Encoding.GetEncoding(1252).GetBytes(cmd); var stm = client.GetStream(); stm.Write(data, 0, data.Length); byte[] resp = new byte[2048]; var memStream = new MemoryStream(); […]
我试图创build一个新的ObjectInputStream使用从Socket检索的InputStream。 这是我的代码: 这是我的MessageGetterSender类的构造函数。 程序没有到达检查点4。 public MessageGetterSender(Socket socket) { System.out.println("MessageGetterSender: Checkpoint 1"); this.socket = socket; // Get input and output streams try { System.out.println("MessageGetterSender: Checkpoint 2"); InputStream is = socket.getInputStream(); System.out.println("MessageGetterSender: Checkpoint 3"); this.in = new ObjectInputStream(is); System.out.println("MessageGetterSender: Checkpoint 4"); } catch (IOException ioe) { System.out.println("Could not get ObjectInputStream on socket: " + socket.getLocalPort()); } try […]