我是菜鸟。今天遇到一个问题。
我有一个WinForm的Socket的例子,一个服务端一个客户端。
我把客户端改成了Web Service 的形式,但是不能返回接过了。
Web Service 的更改后代码如下
private IPAddress hostIPAddress; 
private IPEndPoint Server1; 
SqlConnection strconn = new  SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connectionstring"]);
private Socket sock; 
private const int BufferSize=2048; 
private byte[] buffer=new byte[BufferSize]; 
private static ManualResetEvent connectDone=new ManualResetEvent(false); 
private static ManualResetEvent sendDone=new ManualResetEvent(false);
public string Receive="没有接收";
public string Err="";
public string WZ=""; public string socket()
{
string link=this.Link();
  }
//连接服务器
private string Link() 

try 

hostIPAddress=IPAddress.Parse("127.0.0.1"); 

catch

Err="错误001:95";
return "错误";

try 

Server1=new IPEndPoint(hostIPAddress,Int32.Parse("7000")); 
sock=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); 
sock.BeginConnect(Server1,new AsyncCallback(this.ConnectCallBack),sock);

catch 
{
Err="错误002:103";
return "错误";

return "OK";

//连接函数
public void ConnectCallBack(IAsyncResult ar) 

try 

Socket client=(Socket)ar.AsyncState; //获取状态 
client.EndConnect(ar); 
try 

byte[] byteData=Encoding.ASCII.GetBytes("0015001000010100"); 
sock.BeginSend(byteData,0,byteData.Length,0,new AsyncCallback(SendCallBack),sock); 

catch
{
Err="错误003:128";//return "错误";
}  Receive="与主机127.0.0.1端口7000连接成功"; 
Thread thread=new Thread(new ThreadStart(ThreadProc)); 
thread.Start(); //开始接收数据线程 
connectDone.Set(); //将指定事件的状态设置为终止。 

catch
{
Err="错误004:139";//return "错误";
} // return "OK";
} 这是部分代码;
ConnectCallBack() 函数好像被调用了,但是好像调用了部分。
byte[] byteData=Encoding.ASCII.GetBytes("0015001000010100"); 
sock.BeginSend(byteData,0,byteData.Length,0,new AsyncCallback(SendCallBack),sock); 
这些起到作用了 下面那些就没有起到作用:
Receive="与主机127.0.0.1端口7000连接成功"; 
那位高手教教小弟,实在不知道怎么回事。拜谢了!
我的QQ148390950 注明 csdn
吃完饭回来看帖。拜谢了!