我只是想要一个程序网络游戏,它需要客户端之间的通信启动…服务器是的…客户端给我卡片…(服务器不响应此代码,如果我必须始终创建新的套接字,我将如何获得相同的地址…localhost只是为了测试目的)套接字只运行一次,我不明白为什么????????
我在服务器上监听,虽然为真,但它只得到一个字符串,在下一次尝试中没有得到任何东西....
服务器只是在听和读
package client;
import java.net.*;
import java.io.*;
public class Client {
Client() {
try {
Socket socket = new Socket("localhost",2222);
int i=0;
while(i<100){
i++;
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os,true);
pw.println(i);
}
} catch(IOException e){
System.out.println("Client Constructor Exception");
}
}
public static void main(String[] args) throws Exception{
Client client = new Client();
}
}
服务器的代码是.....请帮助我
package server;
import java.io.*;
import java.net.*;
public class Server {
Server() {
try{
serverSocket = new ServerSocket(2222);
} catch(IOException e) {
System.out.println("IOException in Server Constructor");
}
}
public void operate() {
try{
// Control control = new Control();
while (true) {
socket = serverSocket.accept();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.println(br.readLine());
//control.recieve(socket, br.readLine());
}
} catch(IOException e) {
System.out.println("IOException in Server operate function");
}
}
public Socket getSocket() {
return socket;
}
public static void main(String[] args) throws IOException {
Server server = new Server();
server.operate();
}
private ServerSocket serverSocket;
private Socket socket;
}
输出是:
运行:开始
为什么它不能运行100次。。。。。
Socket socket = new Socket("localhost",2222);
OutputStream os=null;
PrintWriter pw=null;
while(true){
os = socket.getOutputStream();
pw = new PrintWriter(os,true);
pw.println("Start");
}
在服务器代码中,您必须将server.accept()移出循环。试试这个。会有用的。除此之外,我还尝试了服务器的即时回复。
服务器代码。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private ServerSocket serverSocket;
private Socket socket;
Server() {
try {
serverSocket = new ServerSocket(2222);
} catch (IOException e) {
System.out.println("IOException in Server Constructor");
}
}
public void operate() {
try {
// Control control = new Control();
socket = serverSocket.accept();
while (true) {
System.out.println("Server starts listening on "
+ serverSocket.getLocalPort());
System.out.println("Server accepts connection.");
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os, true);
pw.println("Hi Client");
// Thread.sleep(1000);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.println(br.readLine());
System.out.println("reply sent to client");
// control.recieve(socket, br.readLine());
}
} catch (IOException /*| InterruptedException*/ e) {
System.out.println("IOException in Server operate function");
}
}
public Socket getSocket() {
return socket;
}
public static void main(String[] args) throws IOException {
Server server = new Server();
server.operate();
}
}
客户代码:
package com.java.examples;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
Client() {
try {
Socket socket;
socket = new Socket("localhost",2222);
// InputStream in = socket.getInputStream();
while (true) {
// socket = new Socket("localhost", 2222);
System.out.println("Socket - " + socket.getLocalPort());
OutputStream os = socket.getOutputStream();
InputStream is = socket.getInputStream();
PrintWriter pw = new PrintWriter(os, true);
pw.println("Hi Server");
// Thread.sleep(2000);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.println("Waiting for server reply..");
System.out.println(br.readLine());
System.out.println("Got reply from server..");
// pw.flush();
}
} catch (IOException/* | /*InterruptedException*/ e) {
e.printStackTrace();
System.out.println("Client Constructor Exception");
}
}
public static void main(String[] args) throws Exception {
Client client = new Client();
}
}
我正在尝试创建一个仅在共享内存中具有文件的小文件服务器。客户端应该向服务器发送命令,如 CREATE、DELETE 等。但是,我还没有到那个阶段。 我已经准备了一个服务器和一个客户端。服务器接受套接字,并为每个客户端连接创建一个新线程(要求)。 当我启动客户端时,我可以成功连接到服务器并发送将被接收的消息。但是,这只能工作一次。发送我的命令后,服务器将不会收到任何其他命令。 我尝试使用换行符捕获消
我有一个关于Java插座的技术问题。 例如,假设我有一个Java Sockets服务器和n个多个客户端。是否可以几乎实时地将数据从服务器发送到任何或所有客户端? 更准确地说: 有哪种监听器可以在Sockets客户端中实现 有人能告诉我什么方法是最好的吗?此外,如果有人有一个代码示例,我也会很高兴。 谢谢
我用Java编写了套接字客户端程序。我正在使用DataOutputStream向服务器套接字发送消息。有时DataOutputstream上的writed消息不会发送到ServerSocket。我想是因为我发了信息后没有脸红。我这样做,但没有用。如果我终止类执行,那么只有我从ServerSocket接收消息。 我的代码: 已完成将消息放入队列。无限while循环将负责向服务器套接字发送日志。 文件
我也试图从Java服务器和Python客户机传输数据。我成功地将数据从客户端传输到服务器,但根本没有接收到数据。 在python客户机上,我有以下内容:(注意,这是在一个单独的线程中运行的) 如果这是成功的工作,输出将是客户端套接字值,等待服务器,然后得到一些数据。然而,它正陷入等待数据的困境。 这意味着套接字显然不是None,它正在等待缓冲区接收?我将接收缓冲区大小设置为1,以查看是否有任何数据
我有一个客户端和一个服务器。它们通过使用以下命令创建的套接字进行通信: 套接字(AF_INET,SOCK_STREAM,0) 他们之间的交流很好。 我想创建第三个程序,充当服务器并向客户端发送假消息。此程序必须使用以前创建的客户端和服务器套接字。 我使用发送命令与套接字ID由我的静态设置 写入(插座号,消息,1024) 但是它不起作用(我不确定这是正确的方法)。 因此,我尝试了telnet和nc(
我正试图从套接字服务器(Java)向套接字客户端(Python)发送一个映像,但客户端中接收到的映像大小不正确,无法打开。我不知道我做错了什么。有什么建议吗?