小编Tea*_*lls的帖子

request.GetResponse总是提供超时

我为一个程序创建了一个函数,它在请求类型是的时候工作GET,如果是POST,它总是产生一个超时异常(并且没有达到50秒的超时)在线上HttpWebResponse response = (HttpWebResponse)request.GetResponse();
我尝试了很多东西,但我没有找到原因,也许有人在这里知道.

编辑:如果有人感兴趣,可以使用它:https ://gist.github.com/4347248

任何帮助将不胜感激.

我的代码是:

public ResRequest request(string URL, RequestType typ, CookieCollection cookies, string postdata ="", int timeout= 50000)
    {
        byte[] data;
        Stream req;
        Stream resp;

        HttpWebRequest request = WebRequest.Create(URL) as HttpWebRequest;
        request.Timeout = timeout;
        request.ContinueTimeout = timeout;
        request.ReadWriteTimeout = timeout;
        request.Proxy = new WebProxy("127.0.0.1", 8118);
        request.Headers.Add(HttpRequestHeader.AcceptLanguage, "de");
        request.Headers.Add("UA-CPU", "x86");


        request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
        request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center …
Run Code Online (Sandbox Code Playgroud)

.net c# timeout httpwebrequest

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

Android 初始屏幕:缩放位图

我基本上将以下 xml 用于 Android启动屏幕:空活动windowBackground

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>
Run Code Online (Sandbox Code Playgroud)

background_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@color/defaultBackground" />
    </item>
    <item>
        <bitmap
            android:src="@drawable/logo"
            android:tileMode="disabled"
            android:gravity="center"/>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

只要logo.png小于屏幕尺寸,就可以正常工作。如果logo.png比屏幕大,它就会超出屏幕。

我看到了 3 种解决方法,但都有缺点:

  1. 设置left/ right<item但这需要 API 23+
  2. 因等而@drawable/logoxhdpixxhdpi但我使用的是密度分割,当为其他设备重用 apk 时(apk 网站、“移动到新设备”-传输 apk 的应用程序等),这会破坏它
  3. 使用带有 的布局ImageView,但这有明显的延迟

如何正确/没有缺点地做到这一点?

android splash-screen android-layout pixel-density screen-density

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

通过TCP/.NET SSLStream发送文件很慢/不起作用

我正在编写一个使用SSL(over SSLStream)的服务器/客户端应用程序,它必须做很多事情(不仅仅是文件接收/发送).目前,它的工作原理是:只有一个连接.我总是从客户端/服务器发送数据SSLStream.WriteLine()并使用它来接收它SSLStream.ReadLine(),因为我可以通过一个连接发送所有信息,我可以从所有线程发送而不会破坏数据.

现在我想实现文件发送和接收.与我的客户端/服务器应用程序中的其他内容一样,每条消息都有一个前缀(如cl_files或sth)和base64编码的内容部分(前缀和内容由|分隔).我实现了这样的文件共享:上传者向接收者发送关于总文件大小的消息,然后上传者通过前缀发送文件的base64编码部分r.

我的问题是文件共享真的很慢.我从localhost到localhost大约20KB/s.我还有另一个问题.如果我增加文件的base64编码部分的大小(这使文件共享更快),前缀r不再出现在接收器上(因此数据无法识别).

我怎样才能让它更快?

任何帮助将不胜感激.

我的(可能很糟糕的)代码是针对客户的:

//its running inside a Thread
FileInfo x = new FileInfo(ThreadInfos.Path);
long size = x.Length; //gets total size
long cursize = 0;
FileStream fs = new FileStream(ThreadInfos.Path, FileMode.Open);
Int16 readblocks = default(Int16);
while (cursize < size) {
    byte[] buffer = new byte[4096];
    readblocks = fs.Read(buffer, 0, 4096);
    ServerConnector.send("r", getBase64FromBytes(buffer));//It sends the encoded Data with the prefix r over SSLStream.WriteLine
    cursize = cursize + Convert.ToInt64(readblocks);
    ThreadInfos.wait.setvalue((csize …
Run Code Online (Sandbox Code Playgroud)

.net c# tcp sslstream

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

SSLStream:"调用SSPI失败"异常


我有一个奇怪的问题:我在c#中编写了一个基于.net2的服务器和客户端,它们通过.net 2 SslStream聊天.Cl和S之间有1个用于发送命令的连接,还有一个用于在cl和s之间发送文件的连接.
在我的Windows机器上本地一切正常.但是,如果我在我的Linux服务器上运行服务器(使用单声道),共享文件在某些​​情况下不起作用.我有不同的文件类别,在其中有两个工作,第三个,服务器挂起,SSLStream.AuthenticateAsServer(....);客户端抛出一个异常,消息"调用SSPI失败,请参阅内部异常".Innerexception是一个System.ComponentModel.Win32Exception,消息"收到的消息是意外的或格式错误的".

我认为我在linux上运行它的方式可能是错误的.实际上我使用VS2012进行本地开发,当我想把它放在服务器上时,我上传VS编译的exe和Im mono server.exe用来启动它.但我也尝试在Windows上使用monodevelop来编译它(monodevelop中编译的东西也在本地工作)并在linux服务器上使用它,但结果却相同.

任何帮助将不胜感激.



继承了我缩短的代码:

客户:

//gets auth guid before, then it does
Thread Thre = new Thread(sendfile);
Thre.Start(authguid);


private void sendfile(string guid){
TcpClient cl = new TcpClient();
cl.Connect(hostname, 8789);
SslStream Stream = new SslStream(cl.GetStream(), true, new RemoteCertificateValidationCallback(ServerConnector.ValidateServerCertificate));
Stream.AuthenticateAsClient(hostname);//throws the exception
//sends auth guid and file

}
Run Code Online (Sandbox Code Playgroud)

服务器:

 public class FServer
    {

        protected static bool halt = false;
        protected List<FConnection> connections;
        private TcpListener tcpServer;
        private IPEndPoint ipEnde = new IPEndPoint(IPAddress.Any, 8789);
        private delegate …
Run Code Online (Sandbox Code Playgroud)

c# mono sspi sslstream .net-2.0

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