delphi 7中tcpserver 和 tcpclient的运用
procedure TForm1.TcpServer1Accept(Sender: TObject; 里面也是死循环来处理消息。直到你终止。while ClientSocket.connected do tcpclient1 也是类似的,用单独的线程死循环来处理接收的消息。 只有发送消息就无所谓

关于TcpServerChannel和TcpChannel的区别是什么
TcpChannel 类是一个组合信道,它组合了 TcpServerChannel 和 TcpClientChannel 以方便使用。信道在应用程序之间跨远程处理边界(例如,应用程序域、进程和计算机)传输消息。这些跨越包括入站和出站。当前信道在终结点上侦听入站消息,并将出站消息发送到终结点。 构造函数TcpChannel(int)要在其上激活 TCP 服务器信道的端口号。 TcpChannel();仅激活客户端信道,不激活服务器信道。

socket、TcpServer、UdpClient、TcpClient,这四个类有哪个可以直接传输文件,而不需要读取文件中的内容?
这四个都可以,socket是最基本的,TCPServer/TCPClient/UdpClient 只是他们抽象出来的而已。 如果你用的是C/S架构,那在服务器端用TCPServer监听,客户端TCPClient连接就可以了。
要那样功能的.net类库里面没有,可用用别人做的类库和自己写一个!方便使用

delphi Tidtcpserver 和Ttcpserver区别
没啥大区别 反正都是建立socket server的 我反而用Tserversocket较多 delphi7有 但默认不安装 官方自己也推荐indy的较好 所以很少有人用TcpServer。

Delphi中的TcpServer和TcpClient以及UdpSocket的问题
在建立连接完成的事件里面把socket保存起来,S->C的时候找对应C的那个Socket就可以发送啊,至于怎么保存,建议是用TList+自定义一个结构体。 1 连接请求使用了.NET类中的 System.Net.Sockets.TcpClient类,TcpClient(string hostname,int port)Hostname 是要控制的主机名称,当然你也可以用IP地址。Port是端口。// System.EventArgs包含事件数据类的基类private void button7_Click(object sender, System.EventArgs e){//记录操作,在richTextBox控件中增加操作信息richTextBox1.AppendText("请求连接" +textBox1.Text +"r");int port =6678;try{//初始化 TcpClient 类的新实例并连接到指定主机上的指定端口client = new TcpClient(textBox1.Text,port);}catch{MessageBox.Show("服务器不在线!确定是否输入主机名称.");richTextBox1.AppendText("服务器不在线!确定是否输入主机名称.");}}//private void buttion2测试是否与被控制机连接上。程序的流程是发送控制码看控制端是否有反应,如果有返回则显示控制成功。//提供网络访问的数据流//private NetworkStream stream;代码如下:private void button8_Click(object sender, System.EventArgs e){//纪录操作richTextBox1.AppendText("测试连接" +"r");try{stream = client.GetStream();if(stream.CanWrite){//发送控制码string control = "jiance";byte[] by =System.Text.Encoding.ASCII.GetBytes(control.ToCharArray());stream.Write(by,0,by.Length);//下次使用stream.Flush();//启动接收反回数据的线程//receive是线程执行的函数,见后面的分析threadReceive = new Thread(new ThreadStart(receive));threadReceive.Start();}}catch(Exception ee){richTextBox1.AppendText (ee.Message+"r");MessageBox.Show(ee.Message);}}3控制生效的代码private void button9_Click(object sender, System.EventArgs e){//这里是确定要发送的控制码,RadioButton是窗体控件if(radioButton1.Checked){ control = form2.zhucex;}else if(radioButton2.Checked){ control =form3.zhuces;}else if(radioButton3.Checked){ control = warring;}else if(radioButton4.Checked){ control =suggest;}else if(radioButton5.Checked){ control =form4.mumawe;}else if(radioButton6.Checked){ control =drop;}if (control =="000000"){MessageBox.Show("你没有输入任何控制目标!不发控制信号");richTextBox1.AppendText("你没有输入任何控制目标!不发控制信号");}else if(control != "000000"){try{//记录操作richTextBox1.AppendText (control + "正在试图控制,等待回应......" + "r");stream = client.GetStream();if(stream.CanWrite ){byte[] by = System.Text.Encoding.ASCII.GetBytes(control.ToCharArray ());stream.Write(by,0,by.Length);stream.Flush();threadReceive =new Thread(new ThreadStart(receive));threadReceive.Start();}//endif}//trycatch{richTextBox1.AppendText("服务器未连接1控制无效!" +"r");MessageBox.Show("服务器未连接1控制无效!" +"r");}}//else if}4线程执行的函数private void receive(){//设置读取数据的空间byte[] bb = new byte[3];//读取3个字节,i为实际读取的字节数int i = stream.Read(bb,0,3);//转换成字符串,如果是中文控制码则用string ss = //System.Text.Encoding.Unicode.GetString(bb);string ss = System.Text.Encoding.ASCII.GetString(bb);//hjc为我设置的服务器的返回码 hjc为连接成功,hkz为控制成功if(ss=="hjc"){MessageBox.Show("连接成功");richTextBox1.AppendText("连接成功");}if(ss== "hkz"){richTextBox1.AppendText(control +"控制成功"+"r");MessageBox.Show(control +"控制成功"+"r");} }
加510761049,不踩我的,我也不告诉你,150分也不是你的了

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/305414.html。