编写服务器三步骤
第一步:实例化一个服务器:SocketServer server=new SocketServer("端口");
第二步:等待服务器的连接client=server.recept();
第三步:实例化输入输出流 outputstream ous=client.getOutputstream();inputstream ous=client.getInputstream();
第四部:开始进入读取程序
五点注意之处
1----要知道 接入一个客户机之后要循环等待 所以要有
while(true)
{---client=server.recept()----}
2----服务器需要同时处理多个客户机 这样必须要用线程来控制
3----读取消息和发送消息时 都应该和客户机定义好规则 以免出错
4----当通信结束时 要及时关闭客户机
5----突然关闭客户机可能陷入死循环要加一行当读入的数据为null时的处理语句;
编写客户机的步骤
第一步:实例化一个客户机Socket socket=new Socket();
第二步:实例化输入输出流 outputstream ous=client.getOutputstream();inputstream ous=client.getInputstream();
第三部:开始进入处理程序
注意之处
1---读取消息和发送消息时 应该定义和服务器一样的规则 以免出错
2---突然关闭客户机可能陷入死循环要加一行当读入的数据为null时的处理语句;
3---及时将收到的消息显示在界面上
---------------示范服务器部分代码------
-----创建服务器 接入客户机 启动线程-----
public class ServerTest {
public static void main(String args[]){
//int port =9090;
ServerTest sever =new ServerTest();
sever.deal(9090);
}
private void deal(int port) {
try {
//第一步 建立服务器
java.net.ServerSocket Server=new java.net.ServerSocket(port);
System.out.println("已创建一个服务器"+port);
while(true){
//第二步 等待客户器的接入 接入之后产生一个Socket对象
java.net.Socket client=Server.accept();
System.out.println("接入连接"+client.getRemoteSocketAddress());
//第三部 启动线程 处理连接对象
SeverThread st=new SeverThread(client);
st.start();
System.out.println("已启动一个线程去处理这个连接对象了");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
--------------线程处理--------
这里利用/r/n来表示一句话的结束 用bye表示通信的结束
而在实际的通信过程中 这样的协议却是不可行的 必须要严谨的协议
//自定一个SeverThread类基础自Thread处理客户机对象
public class SeverThread extends Thread {
// 属性
private Socket client;
java.io.OutputStream ous;
// 构造函数
public SeverThread(java.net.Socket client) {
this.client = client;
}
// 重写run方法
public void run() {
// 调用处理方法
processchat(client);
// 处理方法执行完毕后,线程自己退出
}
private void processchat(Socket client) {
try {
// 得到一个输出/输入流对象
ous = client.getOutputStream();
java.io.InputStream ins = client.getInputStream();
String s = "欢迎进入服务器!\r\n";
sendMsg(s);// 发送消息给客户机对象
String inputS = readString(ins);// 读取客户机发来的消息
while (!inputS.equals("bye")) {
s = "我收到你的话啦" + inputS + "\r\n";
sendMsg(s);// 发送消息给客户机对象
inputS = readString(ins);// 读取客户机发来的消息
}
s = "你好,再见" + "\r\n";
sendMsg(s);// 发送消息给客户机对象
client.close();// 中断连接
} catch (Exception e) {
e.printStackTrace();
}
}
private void sendMsg(String s) throws Exception {
ous.write(s.getBytes());// 将字符串转为字节读入
ous.flush();// 强制输出
}
private String readString(InputStream ins) throws Exception {
StringBuffer stb = new StringBuffer();// 创建一个字符串缓冲区
int i = ins.read();
char c = (char) i;
while (c!='#'){
System.out.println("写入了字符"+c);
stb.append(c);
i = ins.read();
c = (char) i;
}
// 将读到的字节组转化为字符串返回
String inputS = stb.toString().trim();
System.out.println("写入了字符串"+inputS);
return inputS;
}
}
---------这里的客户机部分由cmd代替-----
分享到:
相关推荐
《无线通信基础介绍无线通信的基本原理,着重强调概念及其在系统中的实现之间的相互影响,涉及的主要问题有MIMO通信、空时编码、机会通信、OFDM和CDMA等,这些概念均利用无线系统的大量实例予以说明。书中还配有大量...
"数据通信基础习题与答案" 数据通信基础是计算机网络和通信领域中的基础知识,涵盖了数据通信的基本概念、技术和原理。本资源提供了大量的数据通信基础习题,旨在帮助学习者掌握数据通信的基础知识。 一、噪声 1....
一、数据通信基础 1. 定义:数据通信是指在两个或多个设备之间通过信道传输数据的过程。这些设备可以是计算机、服务器、传感器或其他网络设备。 2. 组成部分:数据通信系统由五部分组成:发送方、接收方、信源...
本资料“无线通信基础及应用”由魏崇毓编著,旨在提供一个全面且系统的无线通信理论与实践知识框架。 首先,我们要了解无线通信的基本原理。无线通信依赖于电磁波的传播,这些电磁波在空气中以光速传播,使得信息...
本资料“无线通信基础及应用(魏崇毓)第1-3章”是针对这一主题的深入讲解,主要涵盖了无线通信的基础理论、关键技术以及实际应用。以下是基于这三个章节的详细解读: 第一章:无线通信基础 在这一章中,我们首先会...
《无线通信基础》是David Tse撰写的一本经典教材,主要涵盖了无线通信领域的核心理论与实践知识。这本书的中文版和英文原版都被包含在这个压缩包中,为学习者提供了便利,可以方便地进行对照阅读,提高理解效果。 ...
无线通信基础_中文(Fundamentals of Wireless Communication)
通信基础知识是IT领域中的核心部分,它涉及到计算机和网络如何传递信息的基本原理。这份名为"通信基础知识.ppt"的文件涵盖了多个关键概念,包括计算机基础知识、数字信号处理以及通信系统中的抽样、量化、编码、译码...
建设工程配建5G移动通信基础设施技术标准指的是在进行建设工程时,为了配合未来的移动通信技术,特别是第五代移动通信技术(5G)的部署,而制定的一系列技术规范和要求。这些标准确保了5G网络在新的建筑或项目中能够...
《无线通信技术》教学课件-第1章无线通信基础.pdf《无线通信技术》教学课件-第1章无线通信基础.pdf《无线通信技术》教学课件-第1章无线通信基础.pdf《无线通信技术》教学课件-第1章无线通信基础.pdf《无线通信技术》...
此为数字通信基础电子版教程(仇佩亮版),通信专业学生推荐学习教程。
《无线通信基础》(David_Tse)
数据通信基础作为理解现代通信技术的敲门砖,承载着信息传递的基本原理和机制。本文将深入探讨数据通信的基础知识,包括数据的表现形式、传输方式、同步机制以及流量控制等方面,旨在为读者提供一个全面、系统的数据...
无线通信基础知识 无线通信基础知识 无线通信基础知识
移动通信基础知识是信息技术领域中的一个重要组成部分,特别是在当今无线通信飞速发展的时代。本文将深入探讨移动通信的基础,尤其是第二代移动通信技术(2G)的核心——GSM(全球系统 for 移动通信)业务。 首先,...
《无线通信基础》是David Tse教授的著作,他在加州大学伯克利分校的学术地位使这本书在无线通信领域享有极高的声誉。这本书是学习无线通信领域的经典教材,旨在为学生和专业人士提供全面、深入的无线通信理论知识。 ...
《数字通信基础》是由仇佩亮等专家编著的一本深入浅出的教材,主要针对数字通信领域的基础知识进行详尽的阐述。这本书是电子教案的形式,通常包含课件、讲义、习题解答等丰富的教学资源,旨在帮助学生和教师更好地...