导航:首页 > 编程知识 > socket编程怎么接收长度

socket编程怎么接收长度

发布时间:2023-02-01 03:04:57

㈠ socket编程中如何接收变长字符串

TCP是流式的传输,也就是说,TCP自身并不知道你的协议需要传递多大的数据,什么时候结束,如何告诉接收你数据的对端数据已经接收完毕了,需要自己定义协议的格式.主流的方式有以下两种:
第一种是http协议这样的,以"\r\n\r\n"来表示接收完毕,也就是说有一个"标志位".
第二种是在协议中加入表示数据包长度的字段,首先读取包头,解析包头得到接下来数据的长度,然后再进行下一步的读取.

㈡ tcp socket怎么接受一个数据包。 或者说对方先发了一个数据的大小,怎样先把大小收到,然后再收数据

对你来说就是一个字符数组,你直接取这个数组的大小就行了。

㈢ 关于C#,100分+相送。c#中socket编程中,怎么获取接受到得数据长度

服务器端向客户端传送文件之前,可以先向客户端传送一个数据大小的值。否则只能累计分包值得到文件数据最终长度

receive方法中的几个重载都是什么啊
------------------------------------
完全可以自己看MSDN
Socket.Receive (Byte[]) 从绑定的 Socket 套接字接收数据,将数据存入接收缓冲区。
由 .NET Compact Framework 支持。

Socket.Receive (泛型 IList) 从绑定的 Socket 接收数据,将数据存入接收缓冲区列表中。
Socket.Receive (Byte[], SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将数据存入接收缓冲区。
由 .NET Compact Framework 支持。

Socket.Receive (泛型 IList, SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将数据存入接收缓冲区列表中。
Socket.Receive (Byte[], Int32, SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收指定字节数的数据,并将数据存入接收缓冲区。
由 .NET Compact Framework 支持。

Socket.Receive (泛型 IList, SocketFlags, SocketError) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将数据存入接收缓冲区列表中。
Socket.Receive (Byte[], Int32, Int32, SocketFlags) 使用指定的 SocketFlags,从绑定的 Socket 接收指定的字节数,存入接收缓冲区的指定偏移量位置。
由 .NET Compact Framework 支持。

Socket.Receive (Byte[], Int32, Int32, SocketFlags, SocketError) 使用指定的 SocketFlags,从绑定的 Socket 接收数据,将数据存入接收缓冲区。

㈣ c#的socket编程中,怎么获取接受到得数据长度

//测试URL程序 客户端和服务器端在后面
public class TestURL {
public static void main(String[] args) throws IOException {
//构建一URL对象
URL url=new URL("file:///C:/test.out");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
//使用openStream得到一输入流并由此构造一个BufferedReader对象
String inputLine;
while ((inputLine = in.readLine()) != null)
//从输入流不断的读数据,直到读完为止
System.out.println(inputLine); //把读入的数据打印到屏幕
in.close(); //关闭输入流
}
}

客户端程序
public class ClientDemo {
public static void main(String[] args) throws UnknownHostException, IOException {
//向本机的4700端口发出请求
Socket socket=new Socket("localhost",4700);
//由系统标准输入创建一个输入流,负责接收界面输入的数据
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//由Socket对象得到一个输出流
//负责向服务器端发送数据
PrintWriter pw=new PrintWriter(socket.getOutputStream());
//由Socket得到一个对象的输入流
//负责接收服务器端返回的信息
BufferedReader brsocket=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readLine;
//从标准输入设备上接收传入的一个字符串
System.out.println("请您输入向服务器的数据");
readLine=br.readLine();
//如果页面传入bye,则结束循环
while(!readLine.equals("bye")){
/*向服务器发送接收到的字符串*/
pw.println(readLine);
pw.flush();
//在标准输出设备上输出刚才发送给服务器的数据
System.out.println("Client:"+readLine);
//输出从服务器端得到的数据
System.out.println("正在等待接收服务器端信息:");
System.out.println("Server:"+brsocket.readLine());
//从标准输入设备上接收传入的一个字符串
System.out.println("请您输入向服务器的数据");
readLine=br.readLine();
}
brsocket.close();
pw.close();
br.close();
socket.close();
}
}
服务端程序
public class ServerDemo {
public static void main(String[] args) throws IOException {
/*创建服务器监听的接口*/
ServerSocket server=new ServerSocket(4700);
//使用accept()阻塞等待客户请求,有客户
//请求到来则产生一个Socket对象,并继续执行
Socket socket=server.accept();
String line;
//由Socket对象得到一个输入流,负责从客户端接收数据
BufferedReader brin=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//由Socket对象得到一个输出流,负责向客户端发送数据
PrintWriter pw=new PrintWriter(socket.getOutputStream());
//创建一个标准输入设备的输入流
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
//在标准输出设备上输出从客户端得到的数据
System.out.println("正在等待客户端的数据......");
System.out.println("Client:"+brin.readLine());
System.out.println("请您输入要向客户端发送的信息:");
//从标准输入设备上得到字符串
line=in.readLine();
////如果该字符串为 "bye",则停止循环
while(!line.equals("bye")){
//向客户端输出信息
pw.println(line);
pw.flush();
//在标准输出设备上输出刚才Server读入的字符串
System.out.println("Server:"+line);
//输出刚才从客户端读入的数据
System.out.println("正在等待客户端的数据......");
System.out.println("Client"+brin.readLine());
System.out.println("请您输入要向客户端发送的信息:");
line=in.readLine();
}
brin.close();
in.close();
pw.close();
server.close();
socket.close();
}
}

㈤ c++socket编程中怎样接收不定长大小的消息

你可以先发送长度(比如一个int),再发送数据;
接收方先接收长度(int),然后根据长度接收数据

阅读全文

与socket编程怎么接收长度相关的资料

热点内容
cda文件怎么转换成mp3格式 浏览:702
青岛hpv疫苗在哪个app预约 浏览:881
双十一成交额2021数据在哪里看 浏览:631
苹果手机怎么打开移动数据 浏览:637
文件扫描成图片是彩色的吗 浏览:50
编程里的comply什么意思 浏览:91
电脑上面点了禁用网络怎么改回来 浏览:28
javacatch执行 浏览:182
ps软件文件名字 浏览:184
黑苹果查找文件路径 浏览:397
现在编程都有哪些语言 浏览:360
不用钱编辑pdf文件 浏览:973
c截图源代码 浏览:328
隐藏密码忘记怎么办 浏览:102
win10搜索文件名不要内容 浏览:749
在什么app可以看摩托 浏览:814
excel打开文件变成了兼容模式 浏览:996
c语言哪个编程好 浏览:702
lbe平行空间双开文件在哪里 浏览:600
朗动导航没有系统升级 浏览:217

友情链接