udp和TCP方式都可以和网上服务器进行数据交互吧,我之前做的是udp模式的,现项目急需TCP方式的,不知道能不能在此代码上修改下,编程TCP方式的?
代码如下:using System.Net;
using System.Net.Sockets;namespace BACnetClient
{
    public partial class Form1 : Form
    {
        Socket bacnet_master_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("219.142.59.82"), 5022);//目标端口        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            IPEndPoint local_ipep = new IPEndPoint(IPAddress.Parse("192.168.0.24"), 5022);// 绑定端口(本地IP)
            
            bacnet_master_socket.Bind(local_ipep);
            bacnet_master_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
        }        private void btn_Device_FirmwareRevision_Click(object sender, EventArgs e)
        {
            /********************************发送************************************/
            byte[] data = new byte[1024];
            string SendMsgStr = "aaaaaaaaaaaaaaaaa";
            data = Encoding.ASCII.GetBytes(SendMsgStr);            //发送
            bacnet_master_socket.SendTo(data, Convert.ToInt32(data.LongLength), SocketFlags.None, ipep);            /************************接收*****************************/
            IPEndPoint IpSender = new IPEndPoint(IPAddress.Any, 0);
            EndPoint tmpRemote = (EndPoint)IpSender;
            byte[] received = new byte[1024];
            int recv = bacnet_master_socket.ReceiveFrom(received, ref tmpRemote);
        }
    }
}如果我把问题想的太简单了,请高手给个学习的方向,,需要快速解决问题。
万分感激!!!

解决方案 »

  1.   

    给你个文章,你可以比较一下UDP和TCP的不同里面有代码:基于UDP、TCP协议的C#网络编程http://www.cnblogs.com/yjmyzz/archive/2010/03/18/1688928.html
      

  2.   

    你这里是通过Socket实现TCP也可以通过Socket实现常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。