标签: client-server

通过linux命令向端口发送数据

我想通过 Linux 命令将简单数据(比如“hello world”)发送到另一个系统(以及特定的端口号)。我正在寻找类似于客户端程序的命令?谁能帮我吗?

我尝试使用 CURL 但没有正确理解。如果在 CUrl 中可能的话你能举一些例子吗?

提前致谢

linux curl client-server client-side sendmessage

2
推荐指数
1
解决办法
2922
查看次数

处理/定义 poll 系统调用的 struct pollfd 数组的有效方法

我正在使用 poll 来实现具有多路复用的客户端-服务器模型的服务器端。

服务器正在运行一个主循环。
在每个循环中,我都会检查 struct pollfd 数组中的所有 fd,直到找到n包含我内容的套接字(其中n是 poll 返回的数字)。
此外,使用 poll 时没有超时(-1 作为参数)。

因此,如果在侦听套接字上请求新连接,我会将套接字和一些客户端信息插入到我保留的活动连接列表中。

处理 poll 数组最有效的方法是什么?

我是否应该定义一个大小为 10 的小数组,并且如果有更多客户端为大小为 20 或 50 的数组重新分配内存?

或者我应该:(a)释放 struct pollfd 类型的数组,并且(b)重新分配它,其大小等于列表的大小(监听套接字+1)=>每次客户端关闭连接时(因此我必须从数组中删除一个元素(可能将套接字设置为-1,以便 poll 忽略它)导致数组中未使用的空间)

你有什么建议吗?

感谢您的时间


编辑: 我想我已经找到了一个解决方案,每次客户端断开连接时都使用 realloc 和 memmove 进行移位,以覆盖 fds 数组中的套接字。

c sockets client-server polling

2
推荐指数
1
解决办法
3866
查看次数

无法解析方法 readAllBytes()

我想做什么

我正在尝试构建一个 java.net 应用程序,其中客户端和服务器必须通过序列化集合类型作为byte[].

问题

由于未知原因,我的 DataInputStream 无法解析该方法readAllBytes()

一个朋友把它扔进了他的 IDE,它没有抱怨。我不确定这怎么可能是一个版本问题,但我检查过并且我没有错误配置我的项目。我正在使用 Java 8。

  public void startClient() {
        try {
            Socket client = new Socket("localhost", 7000);
            DataOutputStream out = new DataOutputStream(client.getOutputStream());
            out.writeUTF("Hi i'm " + client.getLocalSocketAddress());
            DataInputStream input = new DataInputStream(client.getInputStream());
            byte[] sent = input.readAllBytes(); //"can't resolve method 'readAllBytes()'
            getDataFromClient(input.readAllByes());
//"can't resolve method 'readAllBytes()'
            client.close();


        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我实际上确定应该支持此方法,但我无法弄清楚为什么不支持,因为它被列为从 Input Stream (docs.oracle.com) 继承的方法

包含该方法的项目也是一个 Gradle …

java client-server gradle

2
推荐指数
1
解决办法
2602
查看次数

Rsync 可以用于以编程方式将文件从 Android 客户端传输到 Linux 服务器吗?

我想通过 rsync 将 abc.txt 文件从 Android 客户端传输到服务器。不幸的是,我在 Android 开发者网站上没有找到任何相同的文档。有没有办法在非 root 设备中使用 rsync 从客户端传输数据。

将 100 MB 数据从客户端传输到服务器的最佳实践是什么?我们始终可以使用数据库并从中进行块上传。除了数据库划分和同步设计之外,是否还有可遵循的最佳实践。

rsync android client-server file-upload

2
推荐指数
1
解决办法
5494
查看次数

最佳和现代的软件许可方式

通过互联网将某些安装的软件与某台计算机连接的最佳方法是什么?我想每个安装包(磁盘)都应该有唯一的序列号.并且序列号应该在安装过程中连接到计算机的唯一参数,不是吗?据我所知,有一些approches从计算机CPU ID和发送到服务器.其他人则重新使用MAC地址.所以我有点困惑,知道什么专家做什么,今天推荐.

请分享您的经验,并告诉我这个过程的正确流程.

licensing client-server hardware-id

1
推荐指数
1
解决办法
1914
查看次数

平板电脑(iPad/Android) - 服务器通信协议

我将构建一个客户端 - 服务器应用程序.这里的客户端是iPad(或基于Android的)平板电脑.服务器是普通的电脑.客户端和服务器都连接到同一网络(使用WiFi).

客户端和服务器之间的通信是否有标准方式(协议)?是否有可用于简化此通信的框架?

谢谢

android client-server communication protocols ipad

1
推荐指数
1
解决办法
4522
查看次数

将JSON对象PUT到RESTful服务器的正确方法

我无法正确格式化我的PUT请求以使我的服务器识别我的客户端应用程序的PUT命令.

这是我的一段代码,它将JSON字符串放入服务器.

try {
    URI uri = new URI("the server address goes here");
    URL url = uri.toURL();
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
    out.write(gson.toJson(newClient));
    out.close();
} catch (Exception e) {
    Logger.getLogger(CATHomeMain.class.getName()).log(Level.SEVERE, null, e);
}
Run Code Online (Sandbox Code Playgroud)

这是应该捕获PUT命令的代码

@PUT
@Consumes("text/plain")
public void postAddClient(String content, @PathParam("var1") String var1, @PathParam("var2") String var2) {
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java rest client-server

1
推荐指数
1
解决办法
1万
查看次数

为什么这段代码会冻结我的电脑?

这是非常糟糕的我必须做一个硬重启(按下电源按钮),它甚至没有给我时间调试,所以我基本上搞砸了,如果我没有在这里得到答案.我知道它是服务器端(因为它发生在我不运行客户端时,但如果我这样做也会发生).

这是服务器代码:

package cypri.games.cybatarserver;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class CybatarServer extends JFrame implements Runnable{
    String verNum = "0.0.0";
    JScrollPane jsp;
    JTextArea mainText;
    boolean stopServer = false;
    boolean waitForPlayers = true;
    Vector<Player> playersConnected;
    byte playerID = -1;

    public CybatarServer(){
        playersConnected = new Vector<Player>();

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setBounds(100, 100, 400, 100);

        this.setTitle("Cybatar Server " + verNum);

        mainText = new JTextArea(50, 10);
        mainText.setText("Welcome to CybatarServer "+ verNum + "!\n");
        mainText.setEditable(false);

        jsp = new JScrollPane(mainText); …
Run Code Online (Sandbox Code Playgroud)

java io client-server server-side

1
推荐指数
1
解决办法
187
查看次数

Indy 10 + Delphi客户端 - 服务器应用程序占用所有CPU

我写了一个小型客户端 - 服务器应用程序,它运行在两台或多台不同的机器上,用于重启/关闭.由于我对客户端 - 服务器应用程序比较陌生,所以我在这里采用了关于Delphi的方法.简而言之,我的服务器应用程序等待端口7676上的连接,将客户端添加到客户端列表然后什么也不做(稍后将实现关闭和重新启动过程).但是,即使它是被动的,只需连接两个客户端,它就会占用高达90%的CPU.这是客户端代码,由TidTCPServer和TidAntiFreeze组成:

type
  PClient   = ^TClient;
  TClient   = record
    PeerIP      : string[15];            { Client IP address }
    HostName    : String[40];            { Hostname }
    Connected,                           { Time of connect }
    LastAction  : TDateTime;             { Time of last transaction }
    AContext      : Pointer;             { Pointer to thread }
  end;

[...]

procedure TForm1.StartServerExecute(Sender: TObject);
var
  Bindings: TIdSocketHandles;
begin

  //setup and start TCPServer
  Bindings := TIdSocketHandles.Create(TCPServer);
  try
    with Bindings.Add do
    begin
      IP := DefaultServerIP;
      Port := DefaultServerPort; …
Run Code Online (Sandbox Code Playgroud)

delphi client-server indy10

1
推荐指数
1
解决办法
3009
查看次数

在android中运行方法onclick崩溃

我目前正致力于在Android上编写一个简单的消息应用程序.我把服务器放在一个叫做的类中runServer,它运行得很好.然后我在我的方法中有一个客户端mainActivity.我有一个button,有一个onclick="startClient".但每当我点击它时button,我都会收到错误.

03-11 13:01:40.622: E/AndroidRuntime(718): java.lang.IllegalStateException: 
Could not find a method startClient(View) in the activity class com.example.datorkomprojekt.MainActivity 
for onClick handler on view class android.widget.Button with id 'connect'
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

主要活动

public class MainActivity extends Activity {

private Socket socket;
private ObjectInputStream ois;
private DataOutputStream dos;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    runOnUiThread(new Runnable(){
        public void run(){
        EditText et = (EditText) findViewById(R.id.message_id);
        String message = et.getText().toString();
        EditText et1 = (EditText) findViewById(R.id.messages); …
Run Code Online (Sandbox Code Playgroud)

java xml android client-server

1
推荐指数
1
解决办法
2070
查看次数