问题列表 - 第11100页

Java TCP套接字:数据传输速度很慢

我设置了一个带有ServerSocket的服务器,用客户机连接到它.它们通过交换机直接联网,ping时间<1ms.

现在,我尝试通过套接字的输出流将"大量"数据从客户端推送到服务器.转移0.6Gb需要23分钟.我可以通过scp在几秒钟内推送一个更大的文件.

知道我可能做错了什么吗?我基本上只是循环并在套接字上调用writeInt.速度问题与数据来源无关,即使我只是发送一个常量整数而不是从磁盘读取.

我尝试将两侧的发送和接收缓冲区设置为4Mb,没有骰子.我为读写器使用缓冲流,没有骰子.

我错过了什么吗?

编辑:代码

这是我制作套接字的地方

System.out.println("Connecting to " + hostname);

    serverAddr = InetAddress.getByName(hostname);

    // connect and wait for port assignment
    Socket initialSock = new Socket();
    initialSock.connect(new InetSocketAddress(serverAddr, LDAMaster.LDA_MASTER_PORT));
    int newPort = LDAHelper.readConnectionForwardPacket(new DataInputStream(initialSock.getInputStream()));
    initialSock.close();
    initialSock = null;

    System.out.println("Forwarded to " + newPort);

    // got my new port, connect to it
    sock = new Socket();
    sock.setReceiveBufferSize(RECEIVE_BUFFER_SIZE);
    sock.setSendBufferSize(SEND_BUFFER_SIZE);
    sock.connect(new InetSocketAddress(serverAddr, newPort));

    System.out.println("Connected to " + hostname + ":" + newPort + " with buffers snd=" + sock.getSendBufferSize() + " rcv=" …
Run Code Online (Sandbox Code Playgroud)

java sockets performance networking tcp

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

如何使用LINQ获取int数组中的前3个元素?

我有以下整数数组:

int[] array = new int[7] { 1, 3, 5, 2, 8, 6, 4 };
Run Code Online (Sandbox Code Playgroud)

我编写了以下代码来获取数组中的前3个元素:

var topThree = (from i in array orderby i descending select i).Take(3);
Run Code Online (Sandbox Code Playgroud)

当我查看里面的内容时topThree,我发现:

{System.Linq.Enumerable.TakeIterator}
count:0

我做错了什么以及如何更正我的代码?

c# linq .net-3.5

13
推荐指数
2
解决办法
3万
查看次数

我何时应该使用参数?

我不明白何时应该使用输出参数,如果我需要返回多个类型,我个人将结果包装成新类型,我发现使用它比使用更容易.

我见过像这样的方法,

   public void Do(int arg1, int arg2, out int result)
Run Code Online (Sandbox Code Playgroud)

有没有真正有意义的案例?

怎么样TryParse,为什么不返回一个ParseResult类型?或者在较新的框架中返回一个null-able类型?

.net c# out

50
推荐指数
4
解决办法
3万
查看次数

如何在用户桌面存储已处理的文件?

我创建了一个网站.在缩放图像选项中创建..现在我想将该缩放图像存储在用户桌面..但它保存在代码现有文件夹..请帮我发送php脚本来存储该文件桌面

php

0
推荐指数
1
解决办法
73
查看次数

在PHP中反向堆叠变量

我有一个循环吐出值并被放入一个字符串:

$all_values = "";
while loop {
  $value = "...";
  $all_values .= $value . ",";
}
Run Code Online (Sandbox Code Playgroud)

产量:1,3,8,2,10 ......

什么是最简单的输出相同的东西但数字相反的方式,所以上面的例子会像... 10,2,8,3,1

php variables

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

如何将其他文件的内容加载到Vim中的当前文件?

作为标题,任何方便的方式?

我特别需要一些cvs/git commit或sendmail来加载模板注释.我认为这是一个vi环境,而不是Vim.

vim

49
推荐指数
1
解决办法
3万
查看次数

Ruby on Rails应用程序上的AssociationTypeMismatch错误

我在rails应用程序上的ruby有问题.我有两个模型 - "患者"和"地址",患者有一个地址,地址属于患者.

Patient.rb

class Patient < ActiveRecord::Base
  has_many :charge_slips
  has_one :address

  validates_presence_of :last_name
  validates_presence_of :first_name
  validates_presence_of :middle_name

end
Run Code Online (Sandbox Code Playgroud)

Address.rb

class Address < ActiveRecord::Base
  belongs_to :patient
  validates_associated :patient
end
Run Code Online (Sandbox Code Playgroud)

患者controller.rb

class PatientController < ApplicationController
  def index
    @title = "Outpatient Services - Patient"
    @today = Date.today.to_formatted_s(:long)
    @patients = Patient.find(:all)
  end

  def new
    @patient = Patient.new
    @address = Address.new
  end

  def create
    @patient = Patient.new(params[:patient])
    @patient.created_on = Date.today.to_formatted_s(:long)

    if @patient.save
      @address = Address.new(params[:address])
      @address.patient_id = @patient.id
      if @address.save
        redirect_to :action => 'index' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

9
推荐指数
1
解决办法
5086
查看次数

使用c#的Amazon ec2 API版本2签名编码

我在为ec2 API的第2版签名编码哈希时遇到问题.

注意我的版本1签名哈希工作正常,但这是折旧的,我将需要转移到版本2.所以首先这里是有效的代码...

参数只是一个字典,我要做的只是按键对参数进行排序,并附加没有分隔符的每个值对,然后对我的密钥散列该字符串.(再说一遍,注意这很好用)

private string GetVersion1Sig()
{
  string sig = string.Join(string.Empty, parameters.OrderBy(vp => vp.Key).Select(p => string.Format("{0}{1}", p.Key, p.Value)).ToArray());
  UTF8Encoding encoding = new UTF8Encoding();
  HMACSHA256 signature = new HMACSHA256(encoding.GetBytes(_secretAccessKey));
  byte[] hash = signature.ComputeHash(encoding.GetBytes(sig));
  string result = Convert.ToBase64String(hash);
  return result;
}
Run Code Online (Sandbox Code Playgroud)

现在,对于版本2,有一些更改,这里是来自API开发人员指南的doco ...

  1. 创建以后在此过程中需要的规范化查询字符串:

一个.使用自然字节顺序按参数名称对UTF-8查询字符串组件进行排序.参数可以来自GET URI或POST主体(当Content-Type为application/x-www-form-urlencoded时).

湾 URL根据以下规则对参数名称和值进行编码:

•不要对RFC 3986定义的任何未保留字符进行URL编码.这些未保留的字符是AZ,az,0-9,连字符( - ),下划线(_),句点(.)和波浪号(〜).
•百分比用%XY编码所有其他字符,其中X和Y是十六进制字符0-9和大写AF.
•百分比编码扩展的UTF-8字符,格式为%XY%ZA ....
•百分比将空格字符编码为%20(而不是+,如常见的编码方案那样).

注意
当前所有AWS服务参数名称都使用未保留的字符,因此您无需对其进行编码.但是,您可能希望包含代码来处理使用保留字符的参数名称,以备将来使用.

C.使用等号(=)(ASCII字符61)将编码参数名称与其编码值分开,即使参数值为空.

d.使用与号(&)(ASCII代码38)分隔名称 - 值对.

  1. 根据以下伪语法创建要签名的字符串("\n"表示ASCII换行符).StringToSign = HTTPVerb +"\n"+ ValueOfHostHeaderInLowercase +"\n"+ HTTPRequestURI +"\n"+
    CanonicalizedQueryString HTTPRequestURI组件是URI的HTTP绝对路径组件,但不包括查询字符串.如果HTTPRequestURI为空,请使用正斜杠(/).
  2. 使用刚刚创建的字符串,密钥访问密钥作为密钥,使用SHA256或SHA1作为哈希算法,计算符合RFC 2104的HMAC.有关更多信息,请访问http://www.rfc.net/rfc2104.html.
  3. 将结果值转换为base64.
  4. 使用结果值作为Signature请求参数的值.

所以我拥有的是......

private string …
Run Code Online (Sandbox Code Playgroud)

c# hash amazon amazon-ec2

6
推荐指数
1
解决办法
3649
查看次数

iPhone Web应用程序开发

我想建立一个iPhone友好的网站......看起来像iPhone应用程序,但实际上是在服务器上,就像Gmail for iPhone一样.

我的理解是,这就是Apple最初计划进行应用程序开发的方式.但是,我找不到有关如何执行此操作的文档.有链接还是什么?

iphone web-applications

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

如何解决"LINK:致命错误LNK1561:必须定义入口点"?

如何解决以下链接错误:

LINK : fatal error LNK1561: entry point must be defined"
Run Code Online (Sandbox Code Playgroud)

我试图做的只是用Visual Studio 2008重新编译MySQL存储引擎示例.

c visual-studio-2008

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