java socket怎么写客户端向服务器发一堆话,服务器可以反馈发送的信息
客户端
服务器
错哪里。。一直Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readLine(Unknown Source)
at ServerThread.run(Server.java:22)
import java.io.*;
import java.net.*;
import java.util.Scanner;
class Receive implements Runnable
{
private Socket Read;
private DataInputStream input=null;
public Receive(Socket R) throws IOException
{
Read=R;
input=new DataInputStream(Read.getInputStream());
}
@Override
public void run()
{
String r;
try
{
while((r=input.readLine())!=null)
{
System.out.println(r);
}
}
catch (IOException e)
{
e.printStackTrace();
}
try
{
Read.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
public class Client
{
private Socket connection;
private PrintWriter output;
private DataInputStream input;
public void connect(InetAddress add) throws IOException
{
connection=new Socket(add,Server.port);
}
public void start() throws IOException
{
output=new PrintWriter(connection.getOutputStream());
input=new DataInputStream(connection.getInputStream());
Scanner s=new Scanner(System.in);
Receive receive=new Receive(connection);
Thread t=new Thread(receive);
t.start();
String send;
while(true)
{
send=s.nextLine();
output.write(send);
output.flush();
if(send.equals("end"))
break;
}
}
public static void main(String[] args) throws IOException
{
Client c=new Client();
c.connect(InetAddress.getLoopbackAddress());
c.start();
}
}
服务器
import java.io.*;
import java.net.*;
import java.util.ArrayList;
class ServerThread extends Thread
{
private Socket ThisSocket=null;
private PrintWriter output=null;
private DataInputStream input=null;
public ServerThread(Socket This) throws IOException
{
ThisSocket=This;
output=new PrintWriter(ThisSocket.getOutputStream());
input=new DataInputStream(ThisSocket.getInputStream());
}
public void run()
{
String recv;
try
{
while((recv=input.readLine())!=null)
{
System.out.println("客户端发来信息:"+recv);
output.write("服务器端已接受信息"+recv);
if(recv.equals("end"));
break;
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
input.close();
output.close();
Server.socketgroup.remove(ThisSocket);
ThisSocket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
public class Server
{
private ServerSocket server;
public static ArrayList<Socket> socketgroup;
public static final int port=1920;
public Server() throws IOException
{
server=new ServerSocket(port);
socketgroup=new ArrayList<Socket>();
}
public void running() throws IOException
{
while(true)
{
Socket connection=server.accept();
socketgroup.add(connection);
new ServerThread(connection).start();
}
}
public static void main(String[] args) throws IOException
{
new Server().running();
}
}
错哪里。。一直Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.DataInputStream.readLine(Unknown Source)
at ServerThread.run(Server.java:22)
...全文
相关推荐
Socket服务端客户端以tcp/ip协议发送接收报文
在Java中,通过`ServerSocket`类可以创建一个服务器端套接字,监听特定的端口。
java基于socket的文件发送与接收,有界面,有进度条
Java基于Socket的文件发送与接收是一个常见的网络编程任务,它涉及到客户端和服务器之间的通信,以及大数据量的传输。
java实现服务器,android上客户端,实现聊天
TCP连接建立后,双方可以互相发送数据,直到一方关闭连接。为了实现聊天功能,服务器和客户端通常会使用文本格式(如JSON或XML)来封装消息,包含消息内容、发送者、接收者等信息。
用java socket实现smtp邮件发送,支持SSL
SMTP是一种互联网标准,用于在邮件服务器之间传输电子邮件。而Java Socket则可以作为客户端,连接到SMTP服务器,执行发送邮件的命令序列。
java实现上传文件到服务器和客户端
三、客户端实现客户端使用Socket类来连接到服务器端,并将文件发送到服务器端。客户端可以通过获取服务器端的输出流来获取服务器端的反馈信息。四、文件上传流程文件上传流程主要分为三个步骤:1.


