永发信息网

java简单的socket框架实现字符串连接,应该怎么做

答案:1  悬赏:50  手机版
解决时间 2021-04-12 20:46
java简单的socket框架实现字符串连接,应该怎么做
最佳答案
///简单的Client/Server程序设计
//服务端
import java.io.*;
import java.net.*;
public class Service {
public static void main(String args[]) {
try {
ServerSocket server = null;
try {
server = new ServerSocket(4700);
// 创建一个ServerSocket在端口4700监听客户请求
} catch (Exception e) {
System.out.println("can not listen to:" + e);
// 出错,打印出错信息
}
System.out.println("server------------------------------");
Socket socket = null;
try {
socket = server.accept();
// 使用accept()阻塞等待客户请求,有客户
// 请求到来则产生一个Socket对象,并继续执行
} catch (Exception e) {
System.out.println("Error." + e);
// 出错,打印出错信息
}
String line;
BufferedReader is = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由Socket对象得到输出流,并构造PrintWriter对象
BufferedReader sin = new BufferedReader(new InputStreamReader(
System.in));
// 由系统标准输入设备构造BufferedReader对象
System.out.println("Client:" + is.readLine());
// 在标准输出上打印从客户端读入的字符串
line = sin.readLine();
// 从标准输入读入一字符串
while (!line.equals("bye")) {
// 如果该字符串为 "bye",则停止循环
// 向客户端输出该字符串
os.println(line);
// 刷新输出流,使Client马上收到该字符串
os.flush();
// 从Client读入一字符串,并打印到标准输出上
System.out.println("Client:" + is.readLine()+"\n");
line = sin.readLine();
// 从系统标准输入读入一字符串
} // 继续循环
os.close(); // 关闭Socket输出流
is.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
server.close(); // 关闭ServerSocket
} catch (Exception e) {
System.out.println("Error:" + e);
// 出错,打印出错信息
}
}
}

//客户端
import java.io.*;
import java.net.*;
public class Client {
public static void main(String args[]) {
try {
Socket socket = new Socket("127.0.0.1",4700);
// 向本机的4700端口发出客户请求
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));

// 由系统标准输入设备构造BufferedReader对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由Socket对象得到输出流,并构造PrintWriter对象
BufferedReader is = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
System.out.println("Client------------------------------");
// 由Socket对象得到输入流,并构造相应的BufferedReader对象
String readline;
readline = sin.readLine(); // 从系统标准输入读入一字符串
while (!readline.equals("bye")) {
// 若从标准输入读入的字符串为 "bye"则停止循环
os.println(readline);
// 将从系统标准输入读入的字符串输出到Server
os.flush();
// 刷新输出流,使Server马上收到该字符串
System.out.println("Server:" + is.readLine());
// 从Server读入一字符串,并打印到标准输出上
readline = sin.readLine(); // 从系统标准输入读入一字符串
} // 继续循环
os.close(); // 关闭Socket输出流
is.close(); // 关闭Socket输入流
socket.close(); //关闭Socket
} catch (Exception e) {
System.out.println("Error" + e); //出错,则打印出错信息
}
}
}

//自己去研究代码 还是挺详细的
希望能够帮助到你,望采纳!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
北京旅游专修学院真的很差吗,学哥学姐们有没
爱的同义词,华润万家超市有牛津英汉同义词字
为什么有的人的3D图标还没熄灭啊?
免费手机词典哪里有
我国北方地区冬天寒冷,当气温为-40℃时,根
怎么点亮qq空间
学习的主动性应该有几点。
联通的手机能插移动卡吗
关于描写秋天叶子美丽的古诗
地下城与勇士马上要出的国庆礼包 内含的装扮
谁玩QQ空间幻想都市???
伍缘折扣(梓营路)这个地址在什么地方,我要处
Youremind him to keep things neat and tidy
苹果笔记本ID登不上去,怎么办
自己最爱的人伤害了自己并离开了,要怎么去面
推荐资讯
宝刀未老下一句成语,成语接龙 水火无情
苹果电脑软件怎么更新,如何将苹果手机软件安
脸部过敏用什么面膜好,敏感性肌肤用什么面膜?
新世纪皮鞋厂地址在哪,我要去那里办事
佳能A70现在大概多少?适合旅游吗?带化学防
下一届奥云会在哪里举行
求民间4大悲惨爱情故事
光辉洗车行这个地址在什么地方,我要处理点事
QQ三国买个60级的号要多少钱
一斤百元钞票大概是多少钱
好人好事征文怎么写
开通超级QQ所发的短信要不要钱的?如果要,会
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?