我正在尝试使用Unix套接字对与子Ruby进程通信Rust进程。我也尝试过只使用Ruby,而且它很有效,但我似乎无法让它与Rust一起工作。
我尝试将"rust_socket“文件描述符传递给ruby_socket,将"ruby_socket”文件描述符传递给Ruby以及读写套接字的不同组合。我觉得我应该传递"ruby_socket“文件描述符,但是当我这样做时,会得到一个错误的文件描述符。
// The rust side of things
use std::process::Command;
use std::os::unix::net::UnixStream;
我在rust中有一个TCP客户端,它应该与Java服务器通信。我得到了基本的工作,可以在它们之间发送字节数组。 但是对于bytearray缓冲区,我需要知道bytearray的长度。但是我不知道我应该得到它。目前,我只有一个固定大小的缓冲区。 我的Rust代码如下所示: loop {
let mut buffer = vec![0; 12]; //fixed buffer length
let n = stream.read(&mut buffer).await;
let text = from_utf8(&buffer
我很难弄清楚为什么rustc假设我想使用collection::string::String而不是std::string::String。
我没有直接使用语句把它拉进来,并且有特定的use语句声明
这是我的板条根的简化版本:
extern crate serialize;
extern crate collections;
use std::str;
use std::string::String;
use std::io::{TcpListener, TcpStream};
use std::io::{Listener, Acceptor};
use self::serialize::js
编者注:此代码示例来自1.0之前的Rust版本,并不是有效的RUST1.0代码。问题中讨论的概念仍然有效。
我在试验用铁锈刮水。我可以在Wireshark中看到传入的包,但是我的recv_from呼叫总是返回Error("End of file")。这是我的节目:
use std::io::net::ip::{Ipv4Addr, SocketAddr};
use std::io::net::udp::UdpSocket;
use std::rand;
use std::io::MemWriter;
fn main() {
let addr = SocketA
来自rust std net库: let listener = TcpListener::bind(("127.0.0.1", port)).unwrap();
info!("Opened socket on localhost port {}", port);
// accept connections and process them serially
for stream in listener.incoming() {
break;
}
info!("closed socket"); 怎样才能让听者停止听呢?它在API中说
我有一个数据库,我在本地托管,需要能够访问这个网站,我有https://nujabes.xyz/使用Javascript。对于服务器端的事情,我使用Rust托管它,因为我的数据库是用Rust编写的: TCP服务器Rust use std::{
io::Read,
net::{Shutdown::Both, TcpListener, TcpStream},
thread::spawn,
};
fn handle_client(mut stream: TcpStream) {
let mut data = [0 as u8; 50]; // using 50 b
我正在编写一个,用于创建rust udp客户端/服务器应用程序。但是,当尝试使用send_to或recv_from方法时,我得到以下错误:
E0599在当前作用域中找不到类型std::result::Result<std::net::UdpSocket, std::io::Error>的名为send_to的方法。
我没有以任何方式修改cargo.toml文件,但是我没有想到我必须这样做,因为我使用的是带有rust版本1.35.0的标准库。
客户机和服务器都是使用cargo新文件名--bin创建的,代码在main.rs中
客户端
use std::net::{Ipv4Addr, So
我正在尝试使用Rust和tokio编写一个简单的HTTP服务器。
一切正常,直到我想要发送回复。
守则如下:
use std::fs;
use std::sync::Arc;
use tokio::net::TcpListener; // 0.1.15
use tokio::prelude::*;
fn main() {
let addr = "0.0.0.0:8080".parse().unwrap();
let listener = TcpListener::bind(&addr).expect("unable to bind TCP li
我有一个名为Connection的结构,它接收tokio::net::TcpStream或tokio::net::UnixStream来与远程服务器对话。由于Rust没有构造函数,我在我的结构中添加了一个静态new()方法,并在那里执行身份验证握手,然后将流的实例传递给一个新的Connection实例,并将该实例从new()返回给我的最终用户。 我的问题是如何创建一个可以设置为UnixStream或TcpStream的临时对象,以便我可以在进行握手的消息交换期间对其进行操作。由于UnixStream和TcpStream没有共同的父母,我对如何实现这一点感到困惑: pub struct Con
我将用Rust编写的同步套接字代码替换为使用Tokio的异步等效代码。Tokio使用未来的异步活动,因此任务被链接在一起,并排队到一个执行器上,由一个线程池执行。
我想要做的事情的基本伪代码如下:
let tokio::net::listener = TcpListener::bind(&sock_addr).unwrap();
let server_task = listener.incoming().for_each(move |socket| {
let in_buf = vec![0u8; 8192];
// TODO this should happen co
我在试着教自己锈病。我知道,但我想构建自己的http客户机。我正在使用GNU 64位的当前夜间构建。
以下是我的当前代码:
use std::io::net::ip::SocketAddr;
use std::io::net::tcp::TcpStream;
use std::io::net::addrinfo::get_host_addresses;
use std::io::net::ip::IpAddr;
use std::io::stdio::println;
fn main() {
// HTTP endpoint
let host = ~"www.telize.c