while (true)
{
mySocket = listener.Accept();//为新建连接创建新的Socket。
Log("Get a connect");
_thread3 = new Thread(new ThreadStart(DDo));
_thread3.Start(); }
private void DDo()
{
string recvStr = "";
byte[] recvBytes1 = new byte[1024];
byte[] recvBytes2 = new byte[1024];
recvStr = null;
bool con = false;
string filePath = "";
try
{
while (true)
{
byte[] recvBytes = new byte[1024];
int bytes = 0 ;
if (mySocket.Connected == false)
{
continue;
}
bytes = mySocket.Receive(recvBytes);//从客户端接受信息
}
}
.................
.................以下是相关的操作
.................
}如上所示: 如果我接受大数据(十M)的数据的同时,有个连接进来,程序就回出错。如何解决并发的问题. 希望高手帮忙解决一下,以前没接触过SOCKET.
{
mySocket = listener.Accept();//为新建连接创建新的Socket。
Log("Get a connect");
_thread3 = new Thread(new ThreadStart(DDo));
_thread3.Start(); }
private void DDo()
{
string recvStr = "";
byte[] recvBytes1 = new byte[1024];
byte[] recvBytes2 = new byte[1024];
recvStr = null;
bool con = false;
string filePath = "";
try
{
while (true)
{
byte[] recvBytes = new byte[1024];
int bytes = 0 ;
if (mySocket.Connected == false)
{
continue;
}
bytes = mySocket.Receive(recvBytes);//从客户端接受信息
}
}
.................
.................以下是相关的操作
.................
}如上所示: 如果我接受大数据(十M)的数据的同时,有个连接进来,程序就回出错。如何解决并发的问题. 希望高手帮忙解决一下,以前没接触过SOCKET.
因为Socket不支持真正的并发
private static volatile Logger _logger;
public static Logger DefaultLogger
{
get
{
if (_logger == null)
{
lock (syncObj)
{
if (_logger == null)
{
_logger = new Logger();
}
}
}return _logger;
}
}
public void DDo()
{
Monitor.Enter(this);//当前对象加锁 //操作代码 Monitor.Exit(this);//当前对象解锁
}