我构建了一个打开ServerSocket的简单应用程序,在连接时,它将自身连接到远程计算机上的另一个服务器套接字.为了实现端口转发,我使用两个线程,一个从本地输入流读取并流到远程套接字输出流,反之亦然.
实现感觉有点无法实现,所以我问你是否知道更好的实现策略,或者甚至有一些代码可以以高效的方式实现.
PS:我知道我可以在Linux上使用IPTables,但这必须在Windows上运行.
PPS:如果你发布这个简单任务的实现,我将创建一个基准来测试所有给定的实现.对于许多小型(~100字节)包和稳定数据流,解决方案应该是快速的.
我当前的实现是这样的(在每个方向的两个线程中执行):
public static void route(InputStream inputStream, OutputStream outputStream) throws IOException {
byte[] buffer = new byte[65536];
while( true ) {
// Read one byte to block
int b = inputStream.read();
if( b == - 1 ) {
log.info("No data available anymore. Closing stream.");
inputStream.close();
outputStream.close();
return;
}
buffer[0] = (byte)b;
// Read remaining available bytes
b = inputStream.read(buffer, 1, Math.min(inputStream.available(), 65535));
if( b == - 1 ) {
log.info("No data available anymore. Closing stream.");
inputStream.close();
outputStream.close(); …
Run Code Online (Sandbox Code Playgroud) 让我从我需要的开始; 程序被赋予一个目录,然后它将检查目录中的所有文件(工作)并对文件执行操作(等待它可以找到该部分的所有文件).然后它会查找子目录并为每个子目录重新运行它的self.
我正在测试的目录如下所示:
desktop/test_files/ (starting directory)
desktop/test_files/folder 1/
desktop/test_files/folder 1>folder 2/
desktop/test_files/folder 1>folder 2/<files, 20 or so>
desktop/test_files/folder 3/
desktop/test_files/folder 3/<more files, 20 or so>
Run Code Online (Sandbox Code Playgroud)
文件夹和文件在名称中包含空格
输出是:
$ ./x007_shorter.sh Desktop/test_files/
Desktop/test_files/"folder 1"/
Desktop/test_files/folder 1/"folder 2"/
ls: cannot access */: No such file or directory
Desktop/test_files/folder 1/folder 2/"folder 3"/
./x007_shorter.sh: line 4: cd: ./folder 3/: No such file or directory
ls: cannot access */: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这是程序:
#!/bin/bash
function findir {
newDir=$1
eval cd $newDir
ARRAY=( $(ls -d …
Run Code Online (Sandbox Code Playgroud) 有没有客观的理由不从C#程序中删除未使用的默认包含?
我们以这个hello world项目为例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world");
}
}
}
Run Code Online (Sandbox Code Playgroud)
程序适用于
using System.Collections.Generic;
using System.Linq;
using System.Text;
Run Code Online (Sandbox Code Playgroud)
部分评论出来.
虽然这个例子非常简单,但我现在还没有看到任何有理由在程序中使用这三行.
"我可能需要以后"作为一个理由,但是对于编译器附带的任何库来说都是如此.
我只是想说我是C#的初学者,所以我可能会遗漏一些非常明显的东西.
有人知道我们可以从使用相机拍摄的真实图像转换为卡通空间吗?
请注意,我的目标不是创建动画或类似内容,而是尽可能转换为"卡通颜色".
将简单的重新量化重新量化到量化级别较低的空间还是其他特定的变换更好?
任何帮助都会有用,因为我无法在此找到任何材料.
Thnx提前.
我使用PDO,我无法插入一些数据:
使用此代码:
$sql = 'INSERT INTO `releases` (id, artists, release, label, catalog, date, tracklist, type, status, vote, votes_count) ';
$sql .= 'VALUES (:id, :artists, :release, :label, :catalog, :date, :tracklist, :type, :status, :vote, :votes_count)';
$query = $this->db->prepare($sql);
$query->bindParam(':id', 0, PDO::PARAM_INT);
$query->bindParam(':artists', implode('|||', $data['artists']), PDO::PARAM_STR);
$query->bindParam(':release', $data['release'], PDO::PARAM_STR);
$query->bindParam(':label', $data['label'], PDO::PARAM_STR);
$query->bindParam(':catalog', $data['catalog'], PDO::PARAM_STR);
$query->bindParam(':date', $data['date'], PDO::PARAM_STR);
$query->bindParam(':tracklist', $data['tracklist'], PDO::PARAM_STR);
$query->bindParam(':type', $data['type'], PDO::PARAM_STR);
$query->bindParam(':status', $data['status'], PDO::PARAM_INT);
$query->bindParam(':vote', 0, PDO::PARAM_INT);
$query->bindParam(':votes_count', 0, PDO::PARAM_INT);
$query->execute();
Run Code Online (Sandbox Code Playgroud)
但数据不会插入数据库.所有名称都已检查且有效.id为AUTO_INCREMENT字段.
如果我使用这段代码:$ this-> db-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_WARNING); …
我有3个存储库,每个存储库都使用相同的代码库创建,但又足以保证不同的存储库.我的"梦想"工作流程是在开发存储库中完成工作,然后将这些更改提取到其他存储库中.我知道我可以这样做:
hg pull -r X -f repo
Run Code Online (Sandbox Code Playgroud)
但这会给我所有的变更集到X.是否可以从特定版本甚至从一系列修订中提取所有变更集?
我的追溯如下:
C:\Romeo\Scripts>python
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyglet.media.avbin
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Romeo\lib\site-packages\pyglet\media\avbin.py", line 53, in <module>
darwin='/usr/local/lib/libavbin.dylib')
File "C:\Romeo\lib\site-packages\pyglet\lib.py", line 122, in load_library
raise ImportError('Library "%s" not found.' % names[0])
ImportError: Library "avbin" not found.
Run Code Online (Sandbox Code Playgroud)
我在system32中运行Windows 7 32位禁用dep和avbin.dll.任何建议都非常感谢!
任何人都可以告诉我如何将这个浮点数转换为12.25到二进制?我知道如何转换"12"而不是0.25
任何帮助深表感谢.谢谢
有没有人有任何想法如何务实地快速检查zip文件是否已根据文件大小损坏?理想情况下,检查zip是否已损坏的最佳方法是进行CRC校验,但这可能需要很长时间,尤其是在存在大量zip文件的情况下.我很高兴能够快速执行文件大小或标题检查.
提前致谢.