- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
[Serializable]
public class Packet : ISerializable
[SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]
protected virtual void GetObjectData(SerializationInfo info, StreamingContext context)
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)]
private void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
protected Packet(SerializationInfo info, StreamingContext context)
[7174c67d-518f-4960-affe-d3bc67320d7e] Waiting for message
20/07/2014 13:03:48: {Rename} SUCCESS from 7174c67d-518f-4960-affe-d3bc67320d7e to NewName
20/07/2014 13:03:48: {Rename} SUCCESS from 7174c67d-518f-4960-affe-d3bc67320d7e to NewName
20/07/2014 13:03:48: [NewName] Waiting for message
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 1/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: Uploaded 2/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: Error Packet: System.Runtime.Serialization.SerializationException: Binary stream '228' does not contain a valid BinaryHeader. Possible causes are invalid stream or object version change between serialization and deserialization.
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at engine.converter.prjnameConverter.BinaryDeserializeObject[T](Byte[] serializedType) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 74
at engine.converter.prjnameConverter.DeSerializeFromByteArray[T](Byte[] data) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 52
at prjname.entity.Client.readResponsePacket(Byte[] data, Packet& Packet, Boolean& bValidPacket) in d:\Work\C#\Project\Work\prjname-Server\entity\Client.cs:line 154
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 3/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: Error Packet: System.Runtime.Serialization.SerializationException: The input stream is not a valid binary format. The starting contents (in bytes) are: 30-0A-00-80-B2-98-3D-A7-FC-B4-41-FC-4F-02-81-03-8A ...
at System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(__BinaryParser input)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadSerializationHeaderRecord()
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at engine.converter.prjnameConverter.BinaryDeserializeObject[T](Byte[] serializedType) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 74
at engine.converter.prjnameConverter.DeSerializeFromByteArray[T](Byte[] data) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 52
at prjname.entity.Client.readResponsePacket(Byte[] data, Packet& Packet, Boolean& bValidPacket) in d:\Work\C#\Project\Work\prjname-Server\entity\Client.cs:line 154
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Error Packet: System.Runtime.Serialization.SerializationException: The input stream is not a valid binary format. The starting contents (in bytes) are: 2B-01-83-40-2E-12-63-8F-C7-F6-89-B2-40-8C-CC-86-2E ...
at System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(__BinaryParser input)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadSerializationHeaderRecord()
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at engine.converter.prjnameConverter.BinaryDeserializeObject[T](Byte[] serializedType) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 74
at engine.converter.prjnameConverter.DeSerializeFromByteArray[T](Byte[] data) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 52
at prjname.entity.Client.readResponsePacket(Byte[] data, Packet& Packet, Boolean& bValidPacket) in d:\Work\C#\Project\Work\prjname-Server\entity\Client.cs:line 154
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Error Packet: System.Runtime.Serialization.SerializationException: Binary stream '57' does not contain a valid BinaryHeader. Possible causes are invalid stream or object version change between serialization and deserialization.
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at engine.converter.prjnameConverter.BinaryDeserializeObject[T](Byte[] serializedType) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 74
at engine.converter.prjnameConverter.DeSerializeFromByteArray[T](Byte[] data) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 52
at prjname.entity.Client.readResponsePacket(Byte[] data, Packet& Packet, Boolean& bValidPacket) in d:\Work\C#\Project\Work\prjname-Server\entity\Client.cs:line 154
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Error Packet: System.Runtime.Serialization.SerializationException: The input stream is not a valid binary format. The starting contents (in bytes) are: AA-01-17-58-02-01-40-C1-D1-51-10-38-29-A8-D5-68-C0 ...
at System.Runtime.Serialization.Formatters.Binary.SerializationHeaderRecord.Read(__BinaryParser input)
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadSerializationHeaderRecord()
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at engine.converter.prjnameConverter.BinaryDeserializeObject[T](Byte[] serializedType) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 74
at engine.converter.prjnameConverter.DeSerializeFromByteArray[T](Byte[] data) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 52
at prjname.entity.Client.readResponsePacket(Byte[] data, Packet& Packet, Boolean& bValidPacket) in d:\Work\C#\Project\Work\prjname-Server\entity\Client.cs:line 154
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Error Packet: System.Runtime.Serialization.SerializationException: Binary stream '150' does not contain a valid BinaryHeader. Possible causes are invalid stream or object version change between serialization and deserialization.
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at engine.converter.prjnameConverter.BinaryDeserializeObject[T](Byte[] serializedType) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 74
at engine.converter.prjnameConverter.DeSerializeFromByteArray[T](Byte[] data) in d:\Work\C#\Project\Work\prjnameDll\converter\prjnameConverter.cs:line 52
at prjname.entity.Client.readResponsePacket(Byte[] data, Packet& Packet, Boolean& bValidPacket) in d:\Work\C#\Project\Work\prjname-Server\entity\Client.cs:line 154
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 4/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 1/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 2/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 3/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 4/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
20/07/2014 13:04:22: [NewName] Waiting for message
20/07/2014 13:04:22: Uploaded 5/5 part of AMediumFile5mb.mp3 (Guid 40695b81-18b1-4329-bb00-344474458c47) from NewName
private void uploadFileToServerToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog dlgChooseUploadFile = new OpenFileDialog();
dlgChooseUploadFile.Multiselect = false;
/*some code*/
if (dlgChooseUploadFile.ShowDialog() == DialogResult.OK)
{
/*some code*/
string strFilePath = dlgChooseUploadFile.FileName;
muUser.Upload(strFilePath); //muUser is class User
}
}
public void Upload(string strFilePath)
{
OnLockForm(true); // Disable MainForm while uploading
UploadingForm uploader = new UploadingForm(strFilePath, this);//=> this: pass user as parameter to get user info like name, NetworkStream for sending request
uploader.OnStopUpload += new UploadingForm.StopUpload((string strMessage)=>
{
OnLockForm(false);
OnNotifyMessage(strMessage);
});
uploader.ShowDialog();
}
public partial class UploadingForm : Form
{
public delegate void StopUpload(string strMessage);
public StopUpload OnStopUpload;
private string mstrFilePath;
private User sender;
public UploadingForm(string strFilePath, User sender)
{
CheckForIllegalCrossThreadCalls = false;
this.mstrFilePath = strFilePath;
this.sender = sender;
InitializeComponent();
}
private void UploadingForm_Shown(object sender, EventArgs e)
{
//some code
ParepareUpload();
}
private void ParepareUpload()
{
Uploader uploader = new Uploader(mstrFilePath, sender);
uploader.OnAPartUploaded += new Uploader.APartUploaded(()=>
{
/*some code but I disabled this delegate*/
});
uploader.OnUploadCanceled+= new Uploader.UploadCancel((string strReason)=>
{
OnStopUpload(strReason);
this.Dispose();
});
uploader.OnUploadCompleted += new Uploader.UploadCompleted(() =>
{
OnStopUpload("Upload done");
this.Dispose();
});
uploader.Begin();
}
public class Uploader
{
public delegate void UploadCompleted();
public UploadCompleted OnUploadCompleted;
public delegate void APartUploaded();
public APartUploaded OnAPartUploaded;
public delegate void UploadCancel(string strReason);
public UploadCancel OnUploadCanceled;
public string mstrFilePath { get; private set; }
public string mUserName { get; private set; }
public Guid mGuid { get; private set; }
private NetworkStream mnetStream { get; set; }
public Uploader(string strFilePath, User sender)
{
this.mGuid = Guid.NewGuid();
this.mUserName = sender.mstrName;
this.mstrFilePath = strFilePath;
this.mnetStream = sender.netStream;
}
public void Begin()
{
/*some code*/
BeginUploadFile();
}
private void BeginUploadFile()
{
try
{
string strFileName = Path.GetFileName(mstrFilePath);
long lFileSize = new FileInfo(mstrFilePath).Length;
byte iPartsCount = (byte)Math.Ceiling((decimal)lFileSize / engine.data.Packet.PACKET_MAXSIZE_UPLOADPART);
for (byte i = 1; i <= iPartsCount; i++)
{
int numBytesToRead = Packet.PACKET_MAXSIZE_UPLOADPART;
if (i == iPartsCount)
{
numBytesToRead = (int)(lFileSize - ((i - 1) * Packet.PACKET_MAXSIZE_UPLOADPART));
}
sendPacket(Packet.CreatePFileUpload(strFileName, i, iPartsCount, readPartOfFile(Packet.PACKET_MAXSIZE_UPLOADPART * (i - 1), numBytesToRead), mGuid));
}
OnUploadCompleted();
}
catch (Exception ex)
{
OnUploadCanceled(ex.ToString());
}
}
private object sync_readPartOfFile = new object();
private byte[] readPartOfFile(int iByteFrom, int numBytesToRead)
{
lock (sync_readPartOfFile)
try
{
using (FileStream fsSource = new FileStream(mstrFilePath, FileMode.Open, FileAccess.Read))
{
fsSource.Seek(iByteFrom, SeekOrigin.Begin);
iByteFrom = 0;
long lEnd = fsSource.Length;
// Read the source file into a byte array.
byte[] bytes = new byte[numBytesToRead];
while (numBytesToRead > 0)
{
// Read may return anything from iByteFrom to numBytesToRead.
int n = fsSource.Read(bytes, iByteFrom, numBytesToRead);
// Break when the end of the file is reached.
if (n == 0)
break;
iByteFrom += n;
numBytesToRead -= n;
}
return bytes;
}
}
catch
{
throw;
}
}
private object sync_sendRequest = new object();
private void sendPacket(Packet request)
{
lock (sync_sendRequest)
try
{
request.pkOwner = mUserName;
byte[] buffer = weHereConverter.SerizableObject(request);
mnetStream.Write(buffer, 0, buffer.Length);
mnetStream.Flush();
//OnAPartUploaded(); /*tempolary disabled*/
}
catch (Exception)
{
throw;
}
}
public void Listen(TcpClient tcpClient, string strName)
{
Client client = new Client(tcpClient, strName);
client.OnNotifyDisconnect += new Client.NotifyDisconnect(ClientDisconnect);
client.OnNotifyMessage += new Client.NotifyMessage(ClientMessage);
client.OnNotifyReceivedData += new Client.NotifyReceivedData(ClientReceivedData);
lock (sync_mlistClient)
{
Packet pkNotifySignIn = Packet.CreatePServerNotify("*ding* welcome...someone");
foreach (Client c in mlistClient)
{
try
{
c.send(pkNotifySignIn);
}
catch { }
}
mlistClient.Add(client);
}
client.BeginListen();
}
private void ClientReceivedData(Packet pkData, Client client)
{
if (pkData.isSCmd())
{
if (pkData.ScmdType == Command.SCMD_RENAME) // packet rename
{
/*some code*/
}
else if (pkData.ScmdType == Command.SCMD_FILEUPLOAD)
{
//new Thread(() => thread_UploadFile(pkData)).Start();
thread_UploadFile(pkData);
}
else
{
/*some code*/
}
}
else if (pkData.isMessage())
{
new Thread(() => ForwardMessageToClient(pkData, client)).Start();
}
else
{
/*some code*/
}
}
// named thread but I call it like a normal method
private void thread_UploadFile(Packet pkUploadData)
{
//new Thread(() => thread_OnUploadingFile(pkUploadData)).Start();
thread_OnUploadingFile(pkUploadData);
}
private object sync_thread_OnUploadingFile = new object();
private void thread_OnUploadingFile(Packet pkUploadData)
{
lock (sync_thread_OnUploadingFile)
{
FileUploadInfo uploadInfo = getFileUploadInfo(pkUploadData);
if (uploadInfo.Fail) // reject packet, Fail marked as true when exception occured while writing to server's hard disk
return;
try
{
File.WriteAllBytes(getUploadFilePart(pkUploadData.ScmdFileUploadGuid, pkUploadData.ScmdFileUploadPartNumber), pkUploadData.msgFileData);
}
catch (Exception ex)
{
/*server log*/MakeThreadNotifyMessage("Error while uploading part " + pkUploadData.ScmdFileUploadPartNumber + "/" + pkUploadData.ScmdFileUploadPartsCount + " of " + pkUploadData.ScmdFileUploadName + " (Guid " + pkUploadData.ScmdFileUploadGuid + ") from " + pkUploadData.pkOwner + "\r\n" + ex);
uploadInfo.Fail = true;
}
finally
{
uploadInfo.OnAPartUploaded(); // increase count part uploaded in uploadInfo
if (!uploadInfo.Complete)
/*server log*/MakeThreadNotifyMessage("Uploaded " + uploadInfo.CountPartsUploaded + "/" + pkUploadData.ScmdFileUploadPartsCount + " part of " + pkUploadData.ScmdFileUploadName + " (Guid " + pkUploadData.ScmdFileUploadGuid + ") from " + pkUploadData.pkOwner);
}
}
}
private Dictionary<Guid, FileUploadInfo> mdictFileUpload = new Dictionary<Guid, FileUploadInfo>();
private object sync_mdictFileUpload = new object();
private FileUploadInfo getFileUploadInfo(Packet pkUploadData)
{
lock (sync_mdictFileUpload)
{
FileUploadInfo result;
if (!mdictFileUpload.TryGetValue(pkUploadData.ScmdFileUploadGuid, out result))
{
mdictFileUpload.Add(pkUploadData.ScmdFileUploadGuid, result = new FileUploadInfo(
pkUploadData.pkOwner, // uploader's name
pkUploadData.ScmdFileUploadGuid, // file guid because I save on save like G-U-I-D-filename_partposition.part
pkUploadData.ScmdFileUploadName, // file name
pkUploadData.ScmdFileUploadPartsCount // total parts count, ex: 5mb file will be splited into 5 parts
));
result.OnFileUploadCompleted += new FileUploadInfo.NotifyFileUploadCompleted(UploadCompleted);
}
return result;
}
}
public class FileUploadInfo
{
public delegate void NotifyFileUploadCompleted(FileUploadInfo uploadFile);
public NotifyFileUploadCompleted OnFileUploadCompleted;
public string UploaderName { get; private set; }
public string FileName { get; private set; }
public int PartsCount { get; private set; }
public Guid FileUploadGuid { get; private set; }
private int _CountPartsUploaded = 0;
private object sync_CountPartsUploaded = new object();
public int CountPartsUploaded
{
private set
{
lock (sync_CountPartsUploaded)
_CountPartsUploaded = value;
}
get
{
lock (sync_CountPartsUploaded)
return _CountPartsUploaded;
}
}
private bool _Fail = false;
private object sync_Fail = new object();
public bool Fail
{
get
{
lock (sync_Fail)
return _Fail;
}
set
{
lock (sync_Fail)
_Fail = value;
}
}
private bool _Complete = false;
private object sync_Complete = new object();
public bool Complete
{
get
{
lock (sync_Complete)
return _Complete;
}
set
{
lock (sync_Complete)
_Complete = value;
}
}
public FileUploadInfo(string UploaderName, Guid FileUploadGuid, string FileName, int PartsCount)
{
this.UploaderName = UploaderName;
this.FileUploadGuid = FileUploadGuid;
this.FileName = FileName;
this.PartsCount = PartsCount;
}
public void OnAPartUploaded()
{
CountPartsUploaded += 1;
if (CountPartsUploaded >= PartsCount)
{
OnFileUploadCompleted(this);
Complete = true;
}
}
}
byte[] message = new byte[2097152];
int bytesRead;
while (true)
{
bytesRead = 0;
#region read client SPacket
try
{
//blocks until a client sends a message
/*server log*/OnNotifyMessage("[" + mstrName + "] Waiting for message");
bytesRead = netStream.Read(message, 0, 2097152);
if (bytesRead == 0)
{
//the client has disconnected from the server
break;
}
}
catch (Exception ex)
{
notifyError("Socket error", ex);
break;
}
#endregion
//message has successfully been received
Packet pkRequestFromClient;
Boolean bValidPacket;
readRPacket(message, out pkRequestFromClient, out bValidPacket);
if (bValidPacket)
{
processRequestPacket(pkRequestFromClient);
}
else
{
/*server log*/OnNotifyMessage("Error packet: "+ pkRequestFromClient.Exception);
}
private void readRPacket(byte[] data, out Packet packet, out bool bValidPacket)
{
try
{
packet = weHereConverter.DeSerializeFromByteArray<Packet>(data);
bValidPacket = true;
}
catch(Exception ex)
{
packet = Packet.CreateErrorPacket(ex);
bValidPacket = false;
}
}
最佳答案
线后
bytesRead = netStream.Read(message, 0, 2097152);
bytesRead
来确定接收了多少字节。您假设收到了整条消息。 TCP 为您提供字节流,它不会以任何方式保留消息。即使 Read 决定始终只读取一个字节,您的代码也必须正常工作。
关于c# - Socket.Send,服务器收到很多无效的 MPacket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848077/
谁能解释一下 Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"之间的区别\") 和 Server.MapPath("/")? 最佳答案
我不知道,为什么我们要使用 Server.UrlEncode() & Server.UrlDecode()?!在 QueryString 中我们看到 URL 中的任何内容,那么为什么我们要对它们进行编
我已经通过 WHM 在我的一个域上安装了 ssl 证书。网站正在使用 https://xyz.com . 但是它不适用于 https://www.xyz.com .我已经检查了证书,它也适用于 www
我已经使用 WMI 检测操作系统上是否存在防病毒软件,itz 正常工作并通过使用命名空间向我显示防病毒信息,例如 win xp 和 window7 上的名称和实例 ID:\root\SecurityC
我们有 hive 0.10 版本,我们想知道是否应该使用 Hive Server 1 或 Hive Server2。另一个问题是连接到在端口 10000 上运行的 Hive 服务器,使用 3rd 方工
我想在 C++ 中使用 Windows Server API 设置一个 HTTPS 服务器,我使用了示例代码,它在 HTTP 上工作正常,但我就是不能让它在 HTTPS 上工作。 (我不想要客户端 S
我写了一个非常基本的类来发送电子邮件。我用 smtp 服务器对其进行了测试,它工作正常,但是当我尝试使用我公司的交换服务器时,它给出了这个异常: SMTP 服务器需要安全连接或客户端未通过身份验证。服
我的应用程序包含一个“网关”DataSnap REST 服务器,它是所有客户端的第一个访问点。根据客户端在请求中传递的用户名(基本身份验证),请求需要重定向到另一个 DataSnap 服务器。我的问题
我有一个 Tomcat 服务器和一个 Glassfish4 服务器。我的 Servlet 在 Tomcat 服务器上启动得很好,但在 Glassfish4 服务器上给我一个“HTTP Status 4
我在 vmware 上创建了一个 ubuntu 服务器。我用它作为文件服务器。如果我通过托管虚拟机的计算机进行连接,则可以访问它。我无法从同一网络上的其他计算机执行此操作。提前致谢! 最佳答案 首先确
如何重启 Rails 服务器?我从 开始 rails server -d 所以服务器是分离的 我知道的唯一方法就是去做ps 辅助 | grep rails 并 kill -9关于过程#但是像这样杀死进
我实际上正在尝试找到编写一个简单的 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的服务器。我只关心XMPP的核心功能(状态、消息传递、群组消息传递)。目前还在学习 XMPP 协议(proto
我实际上正在尝试找到编写简单 XMPP 服务器的最佳方法,或者找到一个占用空间非常小的方法。我只关心 XMPP 的核心功能(统计、消息、组消息)。目前也在学习 XMPP 协议(protocol),所以
我们正在尝试从 Java JAX-RS 适配器访问 SOAP 1.1 Web 服务。 我们正在使用从 WSDL 生成的 SOAP 客户端。 但是当解码 SOAP 故障时,我们得到以下异常: ... C
目前,我和许多其他人正在多个平台(Windows、OS X 和可能的 Linux)上使用 Python HTTP 服务器。我们正在使用 Python HTTP 服务器来测试 JavaScript 游戏
我有一个连续运行的服务器程序(C#/.NET 2.0 on Linux with mono),我想从 PHP 脚本连接到它以在网站上显示状态信息。 目的是创建一个(某种)实时浏览器游戏(无 Flash
所以我有一个单页客户端应用程序。 正常流程: 应用程序 -> OAuth2 服务器 -> 应用程序 我们有自己的 OAuth2 服务器,因此人们可以登录应用程序并获取与用户实体关联的 access_t
我们刚刚将测试 Web 服务器从 Server 2008 升级到 Server 2012 R2。我们有一个部署我们网站的批处理脚本。当它将站点推送到服务器时,它现在失败了。奇怪的是,我可以使用相同的发
建议一些加载SpagoBI服务器的方法,我尝试了所有方法来解析spagobi服务器。在 Catalina 中,错误是 - * SEVERE: Unable to process Jar entry [
当我们点击应用程序服务器(apache tomcat)时,它会创建一个线程来处理我们的请求并与 tomcat 连接,建立连接,tomcat 创建另一个线程来处理请求并将其传递给连接,连接线程将其传递给
我是一名优秀的程序员,十分优秀!