标签: serversocket

使用服务器和UI敲击Knock应用程序

我正在创建一个简单的Knock Knock应用程序(套接字编程),其中有一个localhost服务器,并且有一个客户端.程序很简单,服务器会告诉敲敲笑话,这是它应该如何去,

Server: Knock Knock
Client: Who's there?
Server: Turnip.
Client: Turnip Who?
Server: Turnip the heat.
Run Code Online (Sandbox Code Playgroud)

这就是程序应该如何进行的.但事情是我的GUI没有显示任何消息.在我的文本区域.这是我的代码.

服务器:

import java.net.*;
import java.io.*;

public class KnockKnockServer {
    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(4444);
        } catch (IOException e) {
            System.err.println("Could not listen on port: 4444.");
            System.exit(1);
        }

        Socket clientSocket = null;
        try {
            clientSocket = serverSocket.accept();
        } catch (IOException e) {
            System.err.println("Accept failed.");
            System.exit(1);
        }

        PrintWriter out = new …
Run Code Online (Sandbox Code Playgroud)

java model-view-controller swing serversocket

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

ServerSocket Android

嘿社区我有以下ServerSocket应该监听端口53000并记录任何收到的数据.但是,我似乎无法通过server.accept()阻塞调用.

public void run() {

        SocketServer server = new ServerSocket(53000);


        //---buffer store for the stream---
        byte[] buffer = new byte[1024];
        //---bytes returned from read()---
        int bytes;

        //---keep listening to the InputStream until an
        // exception occurs---
        while (true) {
            try {

                socket = server.accept();
                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                String str = in.readLine();

                Log.i("received response from server", str);

                in.close();
                socket.close();

            } catch (IOException e) {
                Log.e(TAG, e.getMessage());
            } catch (Exception e){
                server.close();
                Log.e(TAG, e.getMessage());
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

我还在Manifest文件中为应用程序提供了INTERNET权限.()

为了增加这个谜团,我还验证了客户端响应被发送到该端口. …

sockets android serversocket

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

TCP服务器无法正确接收数据

下面的代码在Qt C++中有C和TCP服务器中的TCP客户端.我的问题是我使用TCP来提高可靠性,但它有数据丢失(而不是数据包).在我的主代码中,如果我运行tcp客户端来发送数据,TCP服务器只接收一个数据包.如果我sleep(1);在每个数据包传输之间添加到客户端,则TCP服务器接收数据.客户端和服务器都在同一台计算机上运行.

为了简化问题并且不能在这里放置太大的代码,我有以下代码执行得更快,但它丢失了数据包的最后10-15个字节.

TCP C客户端

main.c中

#include "socket_handler.h" //I didn't put the all includes here
#define     PORT             22208
//tcp server
int main(void)
{
    int sockfd;
    uint32_t senderAddress = 2130706433; //127.0.0.1
    if( connect_to_server_w_uint( &sockfd, senderAddress, PORT ) < 0 ){
        printf("error at line 454\n");
        exit(1);
    }

    char data[] = "124b00068c158f$321$52712304$13.212779$0$O$0$0$b4$1$0$3$0$0$0$0$11$0$7$0$1$fe$f1$aaa9fffffffffd80$2132b00$eb460b5e$1$1$2016-02-22 03:01:00$0000-00-00 00:00:00$321$24754$321$13132$1$98$0$5.1$0$3c$64$1$96$4d$3e8$38$2$46$dc$4$3$f6$e6$17$0$e6$d3$1$0$e6$d3$2$0£";
    char buffer[512];

    int i=0;
    for(i=0; i<1000; i++){
        bzero(buffer, 512);
        sprintf(buffer, "%d***%s  -----",i,data);
        send_data_to_server(&sockfd, buffer, strlen(data)  +1 );
        printf("[%d]: data is sent\n", i);
    }
    close_connection(&sockfd);

    return 0;
} …
Run Code Online (Sandbox Code Playgroud)

c c++ qt tcp serversocket

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

ServerSocket端口号可以是任何5009,12221,6 785等.但为什么呢?

我很困惑和搜索,但无法找到我的问题的答案,帮助我....

ServerSocket s= new ServerSocket(port);
Run Code Online (Sandbox Code Playgroud)

这个端口号来自哪里?即使我使用4位或5位数字中的任何一个数字,它仍然可以完美地运行,但为什么以及如何?例如,端口号可以是任何5009,12221,6785等,但为什么呢?谁决定它应该是多少?

java sockets serversocket

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

服务器 - 客户端聊天程序

我正在写一个服务器 - 客户端聊天程序.

这是我的代码

服务器:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class HelloServer {

    public final static int defaultPort = 2345;

    public static void main(String[] args) {
        int port = defaultPort;
        try {
            port = Integer.parseInt(args[0]);
        } catch (Exception e) {
        }
        if (port <= 0 || port >= 65536) {
            port = defaultPort;
        }
        try {
            ServerSocket ss = new ServerSocket(port);

            while (true) {
                try {
                    Socket s = ss.accept();

                    String response = "Hello …
Run Code Online (Sandbox Code Playgroud)

java sockets networking network-programming serversocket

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

当客户端未将数据发送到服务器但客户端断开发送到服务器的数据时,连接成功

在这里我放了一些代码,连接建立,但是每当客户端想要将一些数据发送到服务器数据时,如果客户端在到达服务器后立即解除连接数据如何解决该问题.

我想要的是:如果建立连接并且连接不紧密.

public class Server extends AppCompatActivity {

private ServerSocket serverSocket;
Handler UIHandler;
Thread Thread1 = null;
EditText edText;
public static final int SERVERPORT = 3000;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_server);
    getSupportActionBar().setTitle("Server");
    edText = (EditText) findViewById(R.id.editText);
    UIHandler = new Handler();
    this.Thread1 = new Thread(new Thread1());
    this.Thread1.start();

}

class Thread1 implements Runnable {
    InetAddress addr;

    @Override
    public void run() {
        Socket socket = null;
        try {
            addr = InetAddress.getByName(getLocalIpAddress());
            serverSocket = new ServerSocket(SERVERPORT);
        } catch (IOException e) { …
Run Code Online (Sandbox Code Playgroud)

java sockets android serversocket

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

如何在java中设置客户端端口号?

一旦服务器决定接受客户端的连接,任何人都可以告诉我如何设置客户端端口号。我希望客户端的端口号应该在 50000 到 60000 之间。

java serversocket

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