这个是服务端程序:
package mypackage;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public BufferedReader br;
public void Connect()
{
try
{
ServerSocket ss=new ServerSocket(8888);
Socket s=ss.accept();
InputStream is=s.getInputStream();
DataInputStream ds=new DataInputStream(is);
InputStreamReader isr=new InputStreamReader(ds);
BufferedReader br=new BufferedReader(isr);
while(true)
{
System.out.println("客户端:"+br.readLine());
}
}catch(IOException e){}
}
//public String info;
public static void main(String args[])
{
Server ser=new Server();
ser.Connect();
}}
这个是客户端程序:package mypackage;
import java.io.*;
import java.net.Socket;public class Client
{
public Client()
{
}
private void Conn(){
try
{
Socket s=new Socket("127.0.0.1",8888);
while(true){
OutputStream os=s.getOutputStream();
//DataOutputStream dos=new DataOutputStream(os);
OutputStreamWriter osw=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(osw);
}
}catch(IOException e)
{}
}
public static void main(String args[])
{
Client c=new Client();
c.Conn();
}
}
编译,运行都没问题,就是达不到效果(客户端发消息,服务器端收消息),好像是阻塞了,对输入输出那里不太懂,请各位帮忙分析一下.
package mypackage;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public BufferedReader br;
public void Connect()
{
try
{
ServerSocket ss=new ServerSocket(8888);
Socket s=ss.accept();
InputStream is=s.getInputStream();
DataInputStream ds=new DataInputStream(is);
InputStreamReader isr=new InputStreamReader(ds);
BufferedReader br=new BufferedReader(isr);
while(true)
{
System.out.println("客户端:"+br.readLine());
}
}catch(IOException e){}
}
//public String info;
public static void main(String args[])
{
Server ser=new Server();
ser.Connect();
}}
这个是客户端程序:package mypackage;
import java.io.*;
import java.net.Socket;public class Client
{
public Client()
{
}
private void Conn(){
try
{
Socket s=new Socket("127.0.0.1",8888);
while(true){
OutputStream os=s.getOutputStream();
//DataOutputStream dos=new DataOutputStream(os);
OutputStreamWriter osw=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(osw);
}
}catch(IOException e)
{}
}
public static void main(String args[])
{
Client c=new Client();
c.Conn();
}
}
编译,运行都没问题,就是达不到效果(客户端发消息,服务器端收消息),好像是阻塞了,对输入输出那里不太懂,请各位帮忙分析一下.
是不是发送太频繁了, 休息300ms再发送吧. Sleep一下
import java.net.*;public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(5678);
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client
.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
while (true) {
String str = in.readLine();
out.println("has receive words of client:" + str);
out.flush();
if (str.equals("end"))
break;
}
client.close();
}
}
import java.net.*;
import java.io.*;public class Client {
static Socket server; public static void main(String[] args) throws Exception {
server = new Socket(InetAddress.getLocalHost(), 5678);
BufferedReader in = new BufferedReader(new InputStreamReader(server
.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in)); while (true) {
String str = wt.readLine();
out.println(str);
out.flush();
if (str.equals("end")) {
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
[code=JavaBufferedReader] wt = new BufferedReader(new InputStreamReader(System.in));
[/code],
同时客户端还要去返回服务端的输出:
BufferedReader in = new BufferedReader(new InputStreamReader(server
.getInputStream()));
PrintWriter out = new PrintWriter(server.getOutputStream());
服务端要做的是拿到客户端的输入并提示我已经接收到:
BufferedReader in = new BufferedReader(new InputStreamReader(client
.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());