标签: client-server

Java通过调用main来创建线程

我有一个客户端服务器应用程序,为了测试目的,我需要通过调用在测试方法中启动客户端

Client.main();
Run Code Online (Sandbox Code Playgroud)

这创造了一些新的线索.现在我需要等到该线程完成后再在我的测试中执行断言.我怎么知道这发生的时间?或者,我怎么知道,调用启动了哪个线程(客户端也可以创建其他线程).

java junit multithreading unit-testing client-server

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

我怎么知道我的客户端iOS应用程序是否已连接到服务器?

我按下按钮连接到服务器(TCP),但我不知道它是否连接..这是代码的一部分:

[self connectToServerUsingCFStream:msg portNo:50000];

    if(readStream && writeStream)
    {
        NSString *newText = [[NSString alloc] initWithFormat:@"Connected!! :)"]; 
        statusText.text = newText;
        [newText release];
        pingButton.hidden = NO;
    }
    else
    {
        NSString *newText = [[NSString alloc] initWithFormat:@"Connection unsuccessful :("]; 
        statusText.text = newText;
        [newText release];
    }
Run Code Online (Sandbox Code Playgroud)

即使服务器处于脱机状态,我也总是得到"Connected !! :)"

networking cocoa-touch client-server cfnetwork

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

如何在WCF消息中发送自定义对象

我想发送一个自定义对象system.servicemodel.Channels.Message.喜欢

public class person
{
    string Id;
    string Name;
}

MessageVersion mv = MessageVersion.Create(Soap12);
String action = "Msg";

Message msg = Message.Create(mv, action, new person());

serviceref.ProcessMsg(msg) // this is my service reference in client

//when i tried to access this in Service like 
person p = msg.GetBody<person>()
//I am getting an serialization exception
//I have the Person class on both client and service side
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄清楚我的错误吗?

c# wcf message client-server

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

从客户端向服务器发送字节数组?

我有一个基于tcp的客户端 - 服务器应用程序.我能够发送和接收字符串,但不知道如何发送字节数组.

我正在使用以下函数从客户端向服务器发送字符串:

static void Send(string msg)
{
    try
    {
        StreamWriter writer = new StreamWriter(client.GetStream());
        writer.WriteLine(msg);
        writer.Flush();
    }
    catch
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

通讯实例

客户端发送字符串:

Send("CONNECTED| 84.56.32.14")
Run Code Online (Sandbox Code Playgroud)

Server收到一个字符串:

void clientConnection_ReceivedEvent(Connection client, String Message)
{
    string[] cut = Message.Split('|');
    switch (cut[0])
    {
        case "CONNECTED":
            Invoke(new _AddClient(AddClient), client, null);
            break;
        case "STATUS":
            Invoke(new _Status(Status), client, cut[1]);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要一些帮助来修改上面的函数,以便除了字符串之外还发送和接收字节数组.我想打这样的电话:

Send("CONNECTED | 15.21.21.32", myByteArray);
Run Code Online (Sandbox Code Playgroud)

c# client-server tcplistener tcpclient .net-2.0

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

两台具有相同IP地址的计算机 - 使用套接字的聊天应用程序

在家里,我有调制解调器,路由器,台式机和笔记本电脑.

我的调制解调器连接到我的路由器.桌面通过电线连接到我的路由器.笔记本电脑无线连接到家庭网络/路由器.

当我访问这个网站:http://whatismyipaddress.com/时,我的桌面和笔记本电脑的IP地址是相同的.如何确定唯一的IP?

我问的原因是因为我有兴趣开发一个旨在通过互联网工作的简单C++服务器 - 客户端聊天应用程序.写这篇文章时,我相信客户端的代码需要有关于服务器的信息(IP地址和端口号).我想在桌面计算机上运行服务器,并让任何运行客户端代码的计算机能够连接到它.

谢谢你的帮助.此外,如果您感兴趣,我正在关注此c ++聊天应用程序教程:http://www.youtube.com/watch?v = -Rk8LPtVpY0

c++ networking chat client-server

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

使用qt的多客户端/服务器tcp应用程序

我正在研究一个需要在"主"应用程序和许多"服务员"之间进行tcp通信的项目.(该项目采用c ++,我也使用qt)

"仆人"将进行一些处理并将结果发送给"主人".到目前为止,它是一个简单的多客户端 - 服务器应用程序.

事情是,在随机时间,主人会从仆人那里请求一些额外的信息,甚至发送信息来改变他们处理的方式.

如果我将我的项目建立在财富客户/服务器示例上,我是否可以从主人那里向仆人发送消息?(有关如何的任何想法?)

或者我是否需要将我的工作建立在其他方面(比如聊天客户端?)?

关于tcp客户端/服务器通信的任何其他建议是受欢迎的,但由于我已经使用qt,我宁愿不添加其他库....

先感谢您!

c++ qt tcp client-server

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

使用wifi的PC和Android手机之间的通信

我想开发一个客户端服务器应用程序,其中服务器在Android手机上具有wifi和客户端应用程序的PC上.我想在android中使用vc ++ .Net和客户端应用程序制作服务器应用程序.我是网络编程的新手,我无法在互联网上找到任何关于此的线索.我也不知道是否有可能使用vc ++制作服务器.net和客户端是使用android制作的.

任何人都可以指示我如何为此而动.如果可能的话,请提供一些与此相关的链接.

任何帮助将不胜感激.

android client-server visual-c++

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

Erlang:将TCP发送的字符串转换为正确的形式,例如<<"SomeString">>转换为"SomeString"?

我有一个客户端和一个服务器,我使用客户端发送一个字符串"Hello",它在服务器端显示为<<"Hello">>.有没有办法简单地转换<<"Hello">>回来"Hello"?我试过用,

String = io_lib:format("~p",[StringIn]),
            lists:flatten(String),
Run Code Online (Sandbox Code Playgroud)

但这使得格式<<"Hello">>变成[[60,60,"\"Hello\"",62,62]]......

顺便提一下代码:

-module(ss1).
-compile(export_all).
-import(lists, [reverse/1]).

client() ->
    {ok, Socket} =  gen_tcp:connect("localhost", 2345,[binary, {packet, 4}]),
    ok = gen_tcp:send(Socket, "Hello"),
    receive
    {tcp,Socket,String} ->
        io:format("Client received = ~p~n",[String]),       
        io:format("Client result = ~p~n",[String]),
        gen_tcp:close(Socket)
    end.

server() ->
    {ok, Listen} = gen_tcp:listen(2345, [binary, {packet, 4},  {reuseaddr, true}, {active, true}]),
    {ok, Socket} = gen_tcp:accept(Listen),
    gen_tcp:close(Listen),  
    loop(Socket).

loop(Socket) ->
    receive
    {tcp,Socket,String} ->      
        io:format("Server received String = ~p~n",[String]),            
        io:format("Server replying …
Run Code Online (Sandbox Code Playgroud)

string erlang formatting tcp client-server

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

连接丢失后恢复文件上传/下载(套接字编程)

我正在编写一个程序,使用套接字编程在客户端和服务器之间下载/上传文件.我写的代码到目前为止,我可以成功地传输文件.但是,如果在发生下载/上传时由于网络/客户端/服务器中的问题导致连接失败..我需要从原始点恢复下载/上传(不希望重新发送最初发送的数据).我不知道该如何解决这个问题.我正在将文件读入字节数组并通过网络发送.我最初的想法是,每次我下载..我应该检查文件是否已经存在并将数据读入字节数组 - >将数据发送到服务器进行比较,然后通过服务器文件返回剩余的数据比较两个字节数组.但这似乎效率低下并且不再重新开始下载(因为我再次发送数据).注意:文件名是唯一标识符.如果有人能就我应该如何实现文件恢复功能给我建议,我真的很感激?

Server side code:
    package servers;
    import java.io.*;
    import java.net.*;
    import java.util.Arrays;
    public class tcpserver1 extends Thread
    {
        public static void main(String args[]) throws Exception 
    {
        ServerSocket welcomeSocket = null;
        try
        {
             welcomeSocket = new ServerSocket(5555);
             while(true)
             {
                 Socket socketConnection = welcomeSocket.accept();
                 System.out.println("Server passing off to thread");
                 tcprunnable tcprunthread = new tcprunnable(socketConnection);
                 Thread thrd = new Thread(tcprunthread);
                 thrd.start();
                 System.out.println(thrd.getName());
             }
        }
         catch(IOException e){
             welcomeSocket.close();
             System.out.println("Could not connect...");
         }
      }
}
class tcprunnable implements Runnable
{
    Socket socke;
    public …
Run Code Online (Sandbox Code Playgroud)

java sockets resume tcp client-server

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

boost :: asio在async_read中复制输入数据

最近,我从libevent切换到boost :: asio,一周后我注意到一件奇怪的事情:当我从客户端读取数据时,这些数据中的一些似乎是重复的,好像库不需要将其标记为已读(或类似的东西).我的"阅读"方法如下所示:

void client::doRead() {
    delete readBuffer; // getting rid of old data 
    readBuffer = new SerializedBuffer((uint) READ_BUFFER_SIZE);
    readBuffer->position(0);
    asio::async_read(socket, asio::buffer(readBuffer->bytes(), READ_BUFFER_SIZE),
            asio::transfer_at_least(1),
            boost::bind(&client::onRead, shared_from_this(), _1, _2));
}

std::mutex readMutex;
void client::onRead(const asio::error_code &err, size_t nbytes) {
    if (readMutex.try_lock()) {
        if (err) {
            stop();
            return;
        }

        readBuffer->rewind();
        uint limit = (uint) nbytes;
        readBuffer->limit(limit);

        // I've lost hope
        SerializedBuffer *sbuff = new SerializedBuffer(limit);
        memcpy(sbuff->bytes(), readBuffer->bytes(), limit);
        sbuff->limit(limit);

        // that's where I'm checking what I get
        Utils::print(sbuff->bytes(), limit);

        onReceivedData(shared_from_this(), sbuff);
        delete …
Run Code Online (Sandbox Code Playgroud)

c++ boost tcp client-server boost-asio

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