上次解决组播的问题之后,现在有一个Tcp方式接受数据包的问题,由于我是初学者,所以对用Socket的Tcp方式接受数据包不熟悉,我的代码如下:
                    Socket                     tcpReceiveVideoSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);           
                    tcpReceiveVideoSocket.Connect(new IPEndPoint(IPAddress.Parse("192.168.2.108"), 9000));
                                        IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
                    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], tcpPort);                         
                    tcpReceiveVideoSocket.Receive(msg);怎么接受都接受不到数据包,老是报如下的错误:
“在 System.NullReferenceException 中第一次偶然出现的“test.exe”类型的异常”
这是为什么呢?各位有比较好的例子吗?给我一个啊,这几天做项目,从单播方式到组播方式再到Tcp方式,现在就差Tcp方式接受数据包的问题啦,大家快帮助帮助我啊,谢谢!

解决方案 »

  1.   

    给你找了一个带源代码的文章(E文的),还是在Code Project上,关于Socket的信息加密后异步发送和接收,其中有打包和拆包的部分(Check message header, Sending packets 和 Receiving packets)你可以仔细研究一下.如果整篇文章都吃透了,对以后做Socket受益匪浅.http://www.codeproject.com/cs/internet/AsyncSocketServerandClien.asp
      

  2.   

    System.NullReferenceException 是一个空引用异常,和Socket无关,你调试一下看看是哪个变量没有初始化就引用了!
      

  3.   

    RedGoldFish(红金鱼) ( “周围啥都和谐,就差贴子没结”) ( ) 你的msn是多少啊?加下你啊,好一起研究研究问题啊!
      

  4.   

    MSN,QQ这类的我真的不用,不是搪塞,我这人就是比较落后. 你这问题还可以看看wzd24(牧野)的Blog,他在Socket上功底不浅.
      

  5.   

    我的Blog准备关闭了,对于网上这些人,我是已经绝望了!