Tag: tcp

Python的TCP套接字客户端

我需要有一个TCP套接字客户端连接到服务器发送数据和接收。 但是,这个套接字必须一直打开,我不能打开另一个套接字。 我总是有一些数据要发送,然后处理以前发送的数据的答案。 如果我可以打开多个套接字,我认为它更容易。 但在我的情况下,我必须发送一切在同一个套接字asynchronous。 所以问题是,你推荐在Python生态系统中使用什么? (扭曲,龙卷风等)我应该考虑Node.js或另一种select?

用mochatesting节点tcp服务器

我有一个我想用摩卡testing的tcp服务器: // Start the server require('net').createServer(function (socket) { // Handle incoming data socket.on('data', function (data) { … some stuff socket.write("reply with some err message if any"); }); }); 我通常使用expressjs为HTTP Rest API开发节点应用程序,并使用grunt-express-server模块,例如: grunt.registerTask('validate', [ 'express:dev', 'mochaTest', 'express:dev:stop' ]); 这个运行快速服务器,运行testing并停止快速服务器。 有没有相同的东西来testingTCP服务器?

写入后Node.js刷新套接字

我正在Node中实现一个tcp协议。 完整来源: https://github.com/roelandmoors/ads.js/blob/master/ads.js 眼镜: http://infosys.beckhoff.com/content/1033/tcadsamsspec/html/tcadsamsspec_amstcppackage.htm?id=17754 问题是我用这个来发送一个包: this.tcpClient.write(buf); 如果我发送多个命令,那么多个命令合并成一个单独的tcp数据包。 这不起作用。 关于这个问题还有更多的问题,但是他们build议使用一个分隔符。 但是因为我不能改变协议,所以这不是一个选项。 没有一个简单的解决scheme来刷新套接字? socket.setNoDelay()没有帮助。 编辑:我也尝试使用排水事件发送下一个写,但事件永远不会被调用? 更新: 这似乎解决了这个问题,但是非常糟糕,而且现在如果它总是有效的话。 而不是直接写入我写入缓冲区: this.writeFILO.push(buf); 每个周期(?)我正在写封装到套接字stream: var sendCycle = function(ads) { if (ads.writeFILO.length > 0) { ads.tcpClient.write(ads.writeFILO.shift()); } setTimeout(function() { sendCycle(ads); }, 0); }

使用TCP进行跨进程的内存共享

我一开始就没有使用Redis或Memcache或其他内存存储系统,因此在nodejs上犯了一个错误。 现在,重写所有的东西来调整和关联这些API中的代码已经太迟了。 不过,我最近刚刚发现了分叉过程,以及它们有多大的益处。 特别是因为我正在做一个游戏服务器。 我nodejs的问题是: 内存不在nodejs内核之间共享 ..直到我find一个名为Amensia的TCP内存共享模块。 nodejs ,我对于nodejs和tcp有一些疑问: 1) TCP数据包的最大大小约为64K,所以使用这个模块时我只能共享64K的数据? 2)我使用全局的GAMES和users对象来存储玩家数据。 当玩家在地图上移动(x,y位置)和其他动作时,这些对象被更新。 通过TCP发送所有这些数据是否会导致瓶颈?

是一个TCP套接字安全或应该我总是检查用户

我有一个C ++应用程序,通过TCP套接字连接到nodeJS服务器。 在套接字“握手”中,客户端使用服务器已知的UUID进行身份validation,然后服务器将该帐户关联到此识别的UUID 一旦TCP套接字打开,应用程序发送请求,服务器通过相同的套接字回答。 是否有必要为每个请求添encryption码以确保请求来自客户端? 或者是一个sockets应该到位并保持原位? 所以我应该确定客户是客户: 只有打开sockets? 每次提出请求?

如何在Nodejs中一次性通过TCP发送文件

我想通过tcp / ip发送文件,我使用的Nodejs的文件大小小于65536字节。 你设置buffersize? 是的,我愿意。 我尝试发送233565字节的图片,但看起来像nodejs分离我的文件发送多次。 这是我的示例代码 Server.js const net = require('net'); net.bytesWritten = 300000; net.bufferSize = 300000; const fs = require('fs'); const server = net.createServer((c) => { // 'connection' listener console.log('client connected'); c.on('end', () => { console.log('client disconnected'); }); // c.write('hello\r\n'); fs.readFile('daemon0.png' , (err, data) =>{ if(!err){ console.log(data.length); c.write(data); } else { console.log('readfile daemon0 […]

golang tcp socket – 处理多个消息

我有这个Go tcp套接字 package main import ( "fmt" "io" "log" "net" "bytes" ) func main() { l, err := net.Listen("tcp", ":1200") if err != nil { log.Fatal(err) } defer l.Close() for { conn, err := l.Accept() if err != nil { log.Fatal(err) } go func(c net.Conn) { var buf bytes.Buffer io.Copy(&buf, c) fmt.Println("total size:", buf.Len()) s […]

node.js简单的tcptesting

这里是你可以在网上find每个地方的代码 var net = require('net'); var server = net.createServer(function (socket) { socket.write("Echo server\r\n"); socket.pipe(socket); }); server.listen(1337, "127.0.0.1"); 一个简单的tcp服务器将回应你将发送的任何内容。 如何发送数据? 在mac中需要什么工具/命令来testing这个服务器?

Nodejs TCP套接字在结束时不包含remoteAddress信息

我正在构build一个简单的echo服务器,目的是学习有关使用node.js构buildtcp服务的基础知识,并确定可用的信息。 当我创build服务器时,如下所示,我可以访问有关incomingSocket的信息,如远程地址。 为什么我不能访问closuressocket的信息? 以下是我的代码; 我的评论表明我收到的输出。 var net = require ( 'net' ); var server = net.createServer ( function ( incomingSocket ) { //'connection' listener console.log ( 'Connection from ' + incomingSocket.remoteAddress + ':' + incomingSocket.remotePort + " established." ); incomingSocket.on ( 'data' , function ( data ) { // The incomingSocket.remoteAddress is defined here console.log […]

如何保持一个tcp连接总是打开node.js

我正在构build一个带有nodejs的tcp消息服务器。 它只是坐在我的服务器等待接受连接从让我们说一个Arduino。 因为它在连接时识别出一个唯一的ID(不是IP),所以我可以在不知道客户端设备的IP地址的情况下从服务器arduino中写入数据。 但为了高效,我希望连接尽可能长,最好只要客户端设备closures连接。 (例如,在IP变化或某事) 这是服务器的(相关部分): var net = require('net'), sockets = {}; var tcp = net.createServer(function(soc){ soc.setKeepAlive(true); //- 1 soc.on('connect', function(data){ soc.setKeepAlive(true); //- 2 }); soc.on('data', function(data) { //- do stuff with the data, and after identification // store in sockets{} }) }).listen(1111); 是否soc.setKeepAlive(true)保持连接的正确方法? 如果是这样的话,放什么地方呢? 在连接事件(1)中,或者在callback(2)中。 如果这不是办法,那是什么?