TCP/IP的 服务器和客户端之间的socket通信,一般用什么函数来发送数据?
看你用什么语言;了 C# 里面如果你用tcpclient tcplistener的话 这是对networkstream进行读写 write是发 read是收send跟wirte都是视为发送 recv跟read都视为收取 可能区分在于 一个发送字符 一个发送byte[]的区别吧

Linux下实现简单的TCP服务器与客户端通信
一直收的那个就不要写输入的代码了,直接无限读取就可以。 一直发的那个就不要写输出的代码了,直接无限输入就可以; 当然如果想两个都想在服务器和客户端各种实现,那么加入多线程吧。一个线程只管输入,一个线程只管输出
写到shell里面,每次启动,启动shell脚本

VB中有tcp服务器和客户端,当两个客户端都连接上服务器的时候。客户端之间可以通信吗?
两客户端不能直接通信; 如需通讯,可以由服务器端中转。

TCP客户端程序和TCP服务器程序在局域网内无法通信
这是我以前在学校的时候做的一个c/s系统里面的类似qq聊天工具 你看看。。这是客服端的代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Net;using System.Net.Sockets;namespace demo2{public partial class frmTouchWe : Form{Thread a;//发送IP跟端口private UdpClient udp = new UdpClient("127.0.0.1",9000);//接收端口private UdpClient udpSend = new UdpClient(8000);private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0);public frmTouchWe(){InitializeComponent();Form.CheckForIllegalCrossThreadCalls = false;}private void frmTouchWe_Load(object sender, EventArgs e){//定义线程开始a = new Thread(new ThreadStart(Run));a.Start();}private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){//客服接收信息。弹出窗体frmAnswerInfo answerInfo = new frmAnswerInfo();answerInfo.Show();}private void button1_Click(object sender, EventArgs e){//在自己的信息栏中显示自己的信息lsbInfo.Items.Add(txtInfo.Text);//用户信息内容string Mes = txtInfo.Text;//用户信息string mes = "用户:"+Program.user.id+"("+Program.user.name+")"+"" + time;//转换成字节byte[] b = UTF8Encoding.UTF8.GetBytes(Mes);byte[] bb = UTF32Encoding.UTF8.GetBytes(mes);//发送信息udp.Send(bb, bb.Length);udp.Send(b, b.Length);txtInfo.Text = "";}//循环接受客服发来的信息private void Run(){while (true){byte[] b = udpSend.Receive(ref ip);string mes = UTF8Encoding.UTF8.GetString(b);lsbInfo.Items.Add(mes);}}private void button2_Click(object sender, EventArgs e){this.Close();}private void button3_Click_1(object sender, EventArgs e){//清空所有项lsbInfo.Items.Clear();}}}下面是服务器端的代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Net;using System.Net.Sockets;namespace demo2{public partial class frmAnswerInfo : Form{//定义一条线程,用来循环接收客户发来的信息Thread a;//定义另一条线程,用来升起窗体Thread b;//发送到信息的地址private UdpClient udpSend = new UdpClient("127.0.0.1",8000);//接收端口private UdpClient udp = new UdpClient(9000);private IPEndPoint ip = new IPEndPoint(IPAddress.Any,0);public frmAnswerInfo(){InitializeComponent();Form.CheckForIllegalCrossThreadCalls = false;}//循环接收信息private void Run(){while (true){byte[] b = udp.Receive(ref ip);string mes = UTF8Encoding.UTF8.GetString(b);lsbInfo.Items.Add(mes);}}private void frmAnswerInfo_Load(object sender, EventArgs e){//设置窗体的位置属性(窗体加载时候慢慢从右下角升上来~类似qq广告~~)this.Top = Screen.PrimaryScreen.WorkingArea.Height;this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width;//设置窗体的名字a = new Thread(new ThreadStart(Run));b = new Thread(new ThreadStart(run));//开始线程a.Start();b.Start();}//用户点击谈话时显示该窗体private void run(){while (true){this.Top = this.Top - 10;Thread.Sleep(100);if (Screen.PrimaryScreen.WorkingArea.Height - this.Height >= this.Top){break;}}}//发送按钮编码private void button1_Click(object sender, EventArgs e){//获取当前时间DateTime time = DateTime.Now;//在自己的信息栏中显示自己发出去的信息lsbInfo.Items.Add("在线客服:"+time);lsbInfo.Items.Add(txtInfo.Text);//在客户端显示自己的信息标题string mes = "在线客服:"+time;//信息内容string Mes = txtInfo.Text;//发送信息标题byte[] b = UTF8Encoding.UTF8.GetBytes(mes);//发送信息内容byte[] bb = UTF8Encoding.UTF8.GetBytes(Mes);udpSend.Send(b, b.Length);udpSend.Send(bb,bb.Length);txtInfo.Text = "";}private void button2_Click(object sender, EventArgs e){this.Close();}private void button3_Click(object sender, EventArgs e){//清除所有项lsbInfo.Items.Clear();}}} 这个可以跑的。。我以前就用过的。

qt的tcp通信 服务器和客户端读写数据的问题
首先回答第一个问题,读和写可以有多种实现方式,用write和read只是其中一种,前面一个函数中的 clientConnection->write(block)是调用了QTcpSocket 类中的write方法来实现,如果你想不用此方法调用类中的read和write方法,就是你问的第二个问题,in和out的作用,in和out在这里将对socket中的报文收发变为数据流的形式来操作,QDataStream in(tcpSocket)比如这一句是将tcpSocket这个连接的实例对象作为一个文件描述符传递给QDataStream,然后in >> blockSize这句话实现的就是相当于read的操作,就是将数据流读出来。这个 out << (quint16)(block.size() - sizeof(quint16))是写入。实际上对诸如串口收发,读写文件,socket通信等等,用C语言来写,抽象出来都是对文件描述符进行操作,都可以用write和read来做,所以,实际上,第一种方法和第二种方法是一样的,就看你选择什么样的方法了,第三个问题可参考out << (quint16)(block.size() - sizeof(quint16))这样的方法在收到数据以后把数据发出去。
in和out的作用,in和out在这里将对socket中的报文收发变为数据流的形式来操作,QDataStream in(tcpSocket)比如这一句是将tcpSocket这个连接的实例对象作为一个文件描述符传递给QDataStream,然后in >> blockSize这句话实现的就是相当于read的操作,就是将数据流读出来。这个 out << (quint16)(block.size() - sizeof(quint16))是写入。实际上对诸如串口收发,读写文件,socket通信等等,用C语言来写,抽象出来都是对文件描述符进行操作,都可以用write和read来做,所以,实际上,第一种方法和第二种方法是一样的,就看你选择什么样的方法了,第三个问题可参考out << (quint16)(block.size() - sizeof(quint16))这样的方法在收到数据以后把数据发出去。

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