利用JAVA的ServerSocket和Socket编写客户、服务器程序 5
要求:1.创建EchoServer(回声服务器,即收到客户信息后将此信息不改变返回给客户)2.服务器端口80003.输入流输出流使用DataInputStream和Dat...
要求:1.创建EchoServer(回声服务器,即收到客户信息后将此信息不改变返回给客户)
2.服务器端口8000
3.输入流输出流使用DataInputStream和DataOutputStream
4.服务器的祝方法service()
5.客户的主方法talk()
6.当客户说”bye“ ,中断与服务器连接 展开
2.服务器端口8000
3.输入流输出流使用DataInputStream和DataOutputStream
4.服务器的祝方法service()
5.客户的主方法talk()
6.当客户说”bye“ ,中断与服务器连接 展开
2个回答
推荐于2017-10-06 · 知道合伙人数码行家
关注
展开全部
//ServerSocket
import java.io.*;
import java.net.*;
public class TcpServer {
public static void main(String[] args) throws Exception{
ServerSocket server = new ServerSocket(10003);
Socket client = server.accept();
InputStream is = client.getInputStream();
OutputStream os = client.getOutputStream();
byte[] by = new byte[1024];
int len = 0;
String msg = null;
while((len=is.read(by))!=-1){
msg = new String(by,0,len);
System.out.println("来自"+client.getInetAddress().getHostAddress()+"客户端的消息:"+msg);
if("886".equals(msg))
break;
os.write(getPrint(msg));
}
client.close();
}
private static byte[] getPrint(String msg){
return msg.getBytes();
}
}
//Socket
import java.io.*;
import java.net.*;
public class TcpClient {
public static void main(String[] args) throws Exception{
Socket sk = new Socket("localhost",10003);
OutputStream os = sk.getOutputStream();
InputStream is = sk.getInputStream();
os.write(getPrint());
byte[] by = new byte[1024];
int len = 0;
while((len=is.read(by))!=-1){
System.out.println("来自"+sk.getInetAddress().getHostAddress()+"服务器的消息:"+new String(by,0,len));
os.write(getPrint());
}
sk.close();
}
private static byte[] getPrint()throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String msg = in.readLine();
return msg.getBytes();
}
}
//一下是输出结果:
来自127.0.0.1客户端的消息:Hello
来自127.0.0.1客户端的消息:eee
来自127.0.0.1客户端的消息:886
//客户端:
Hello
来自127.0.0.1服务器的消息:Hello
eee
来自127.0.0.1服务器的消息:eee
886
提示:如果提问者想使用DataInputStream可以自行替换掉即可。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询