hello sir,
With your advice I update my redhat9 to fedral4(kernel 2.6.11), but the socket still can't be set timeout property. What is wrong with it? And I also have a problem with Process.GetProcesses(), it can't get all processes in current machine.
Would you do me a favor to help me again please? Thank you very much!
Here is the source code:
using System;
using System.Net.Sockets;
using System.Net;
using System.Runtime.InteropServices;
using System.IO;
using System.Diagnostics;
namespace CommTest
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
//it can't work in fedral core 4(kernel 2.6.11),but works well in winXP
Socket TCPSocket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//following 2 functions cause a exception:non-block socket would block
TCPSocket.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.SendTimeout,1000);
TCPSocket.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReceiveTimeout,1000);
IPAddress ConnIP=IPAddress.Parse("127.0.0.1");
IPEndPoint SensorServer=new IPEndPoint(ConnIP,6000); TCPSocket.Bind(SensorServer);
TCPSocket.Listen(1);
Console.WriteLine("CommServ is listening...");
Socket AcceptSocket=TCPSocket.Accept();//throw a exception:non-block socket would block
Console.WriteLine("CommClient is accepted...");
if(AcceptSocket.Connected)
{
byte[] RcvBuf=new byte[1024];
AcceptSocket.Receive(RcvBuf);
Process[] Ps=Process.GetProcesses();//It dosen't work, only get itself
foreach(Process p in Ps)
{
Console.WriteLine(p.ProcessName);//only output itself, not all processes in current machine,Why?
}
AcceptSocket.Send(RcvBuf);
}
AcceptSocket.Close();
 
; TCPSocket.Close();
}
}
}
_______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
