不要用API来糊弄我,我要的是能够解决问题的答案服务器代码
import java.net.*;
import java.io.*;
public class serverTCP
{
public static void main(String[] args)
{
try{
ServerSocket serversocket=new ServerSocket(2000);
Socket socket=serversocket.accept();
BufferedReader buffer=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String s=buffer.readLine();
System.out.print(s);
socket.close();
}catch(SocketException e){e.printStackTrace();}
catch(IOException e1){e1.printStackTrace();}
catch(UnknownHostException e2){e2.printStackTrace();}
}
}
客户端代码
import java.net.*;
import java.io.*;
public class clientTCP
{
public static void main(String[] args)
{
try{
Socket socket=new Socket(InetAddress.getByName("localhost"),2000);
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.print("我向你发送了一个连接请求,你收到了吗");
}catch(SocketException e){e.printStackTrace();}
catch(IOException e1){e1.printStackTrace();}
}
}错误:
当我运行客户端代码时会向服务器端发送一个字符串;
这时服务器端程序出现异常错误:
这是怎么回事,是我没有捕捉异常吗。
我应该怎么修改服务器端的代码:?不要用API来糊弄我,我要的是能够解决问题的答案
import java.net.*;
import java.io.*;
public class serverTCP
{
public static void main(String[] args)
{
try{
ServerSocket serversocket=new ServerSocket(2000);
Socket socket=serversocket.accept();
BufferedReader buffer=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String s=buffer.readLine();
System.out.print(s);
socket.close();
}catch(SocketException e){e.printStackTrace();}
catch(IOException e1){e1.printStackTrace();}
catch(UnknownHostException e2){e2.printStackTrace();}
}
}
客户端代码
import java.net.*;
import java.io.*;
public class clientTCP
{
public static void main(String[] args)
{
try{
Socket socket=new Socket(InetAddress.getByName("localhost"),2000);
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.print("我向你发送了一个连接请求,你收到了吗");
}catch(SocketException e){e.printStackTrace();}
catch(IOException e1){e1.printStackTrace();}
}
}错误:
当我运行客户端代码时会向服务器端发送一个字符串;
这时服务器端程序出现异常错误:
这是怎么回事,是我没有捕捉异常吗。
我应该怎么修改服务器端的代码:?不要用API来糊弄我,我要的是能够解决问题的答案
import java.io.*;public class serverTCP {
public static void main(String[] args) {
ServerSocket serversocket = null;
Socket socket = null;
BufferedReader buffer = null;
try {
serversocket = new ServerSocket(2000);
socket = serversocket.accept();
buffer = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String s = buffer.readLine();
System.out.print(s);
buffer.close();
socket.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
buffer.close();
socket.close();
serversocket.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
}
import java.net.*;
import java.io.*;
public class clientTCP
{
public static void main(String[] args) {
Socket socket = null;
PrintWriter out = null;
try {
socket = new Socket(InetAddress.getByName("localhost"), 2000); out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
//服务器端是行读,你用print没有行结束标志所以不行
out.println("我向你发送了一个连接请求,你收到了吗");
out.flush(); } catch (SocketException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} finally{
out.close();
try {
socket.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
} 好了,还是print和println的问题,我帮你改了一下,代码尽量写的规范一点。
导致编译都无法通过。
服务端的代码改为:
import java.net.*;
import java.io.*;public class ServerTCP
{
public static void main(String[] args)
{
try{
ServerSocket serversocket = new ServerSocket(6605);
Socket socket = serversocket.accept();
BufferedReader buffer = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String s = buffer.readLine();
System.out.print(s);
socket.close();
}catch (SocketException e) {
e.printStackTrace();
}catch (UnknownHostException e2) {
e2.printStackTrace();
}catch(IOException e1) {
e1.printStackTrace();
}
}
}顺便说一下,你的代码写的极其地乱注意风格!!
import java.net.*;
import java.io.*;public class ServerTCP
{
public static void main(String[] args)
{
ServerSocket serversocket = null;
Socket socket = null;
BufferedReader buffer = null;
try{
serversocket = new ServerSocket(6605);
socket = serversocket.accept();
buffer = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String s = buffer.readLine();
System.out.print(s);
socket.close();
}catch (SocketException e) {
e.printStackTrace();
}catch (UnknownHostException e2) {
e2.printStackTrace();
}catch(IOException e1) {
e1.printStackTrace();
}
}
}
import java.net.*;
import java.io.*;
public class ClientTCP
{
public static void main(String[] args)
{
Socket socket=null;
try{
socket=new Socket(InetAddress.getByName("localhost"),6605);
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println("我向你发送了一个连接请求,你收到了吗");
}catch(SocketException e){e.printStackTrace();}
catch(IOException e1){e1.printStackTrace();}
}
}
//类名第一个字母要大字啊风格好的代码便于阅读和维护·