Java通讯程序一例

Java实现简易的界面通讯录 前言 这个也是Java实验课程的一个作业,和Java实现简单的图形界面计算器一起做的,因为以前没有做过GUI编程,所以做的非常简陋,还有很多BUG,但是感觉当个作业也够了。 程序功能和截图 这里的添加是直接添加到文件中,为什么不用数据库呢?因为我们老师根本就没教,所以也不能用.。 通过输入的名字在文件中查找是否有该用户,如果用,就显示到界面上。 大致的功能就是上面两个。 代... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 本文介绍一种用Java的Socket和ServerSocket实现服务器和客户机通讯的的方法。原理是在服务器端建立ServerSocket端口并监听,接收到客户端的连接请求时建立Socket,得到Socket的输入输出流。在客户端新建Socket并获得输入输出流。服务器和客户端的输入输出流建立后使用writeLine()和println()方法彼此发送和接收数据。为提高代码效率,建立两个类clientAgent和serverAgent。   一、 客户端图形界面   本例中客户端的图形界面用Swing实现,服务器端不使用图形界面

public class javaClient extends JFrame implements ActionListener//以JFrame为基类,实现ActionListener接口

{

JButton sendButton; //"发送"按钮

JTextField inputField; // 输入框

JTextArea outputAera; // 服务器返回框 

public javaClient() //在建构函数中完成图形界面的初始化

{

inputField=new JTextField("这里输入..."); //供客户端输入的文本框

outputArea=new JTextArea("服务器返回"); //显示服务器返回数据的文本域

sendButton=new JButton("发送");

JPanel panel=new JPanel(); //新建面板

panel.setLayout(new BorderLayout()); //设置面板风格为BorderLayout

panel.add(inputField,BorderLayout.NORTH); //放置控件

panel.add(outputArea,BorderLayout.CENTER);

setTitle("Java通讯客户端");

setContentPane(panel); 

}

} 
  二、 客户端通讯类clientAgent   新建一个自定义包clientAgent,包含类clientAgent,该类用来执行和服务器端的交互,将界面和通讯类分开可以使程序的调试和维护更为容易。clientAgent类的作用包括:   1、在建构函数中建立和服务器的连接。   2、sendRequest()方法向服务器发送数据。   3、getResponse()方法从服务器端获得回应   1、 成员变量 clientAgent类的成员变量包括: PrintStream ops; //输出流(指向服务器) DataInputStream ips;//输入流(来自服务器) String cltRequest;//客户端请求 String svrResponse;//服务器端回应   2、 建构函数clientAgent(String serverName,int port)包含两个参数,接收从javaClient的main()函数中传递来的服务器名称和端口号



public clientAgent(String serverName,int port)

{ 

try

{ 

Socket clientSocket=new Socket(serverName,port ); //根据服务器名和端口号建立Socket

ops=new PrintStream(clientSocket.getOutputStream());//获得Socket的输出流

ips=new DataInputStream(clientSocket.getInputStream());//获得Socket的输入流

}

catch(Exception e)

{

System.out.println("无法连接服务器!");

}

} 



  3、 sendRequest()方法



public void sendRequest(String request)

{

ops.println(request); //向Socket的输出流写入字符串

}

4、 getRespone()方法

public String getResponse()

{

String str=new String();

try

{

str=ips.readLine(); //从Socket的输入流读入字符串

}

catch(IOException e){} //必须捕获错误

return str;

} 



三、 客户端javaClient类的main()函数和事件处理   1、 main()函数   有了上面的铺垫,main()函数变得非常简洁



public static void main(String[] args)

{

javaClient frame=new javaClient(); 

frame.pack();//注意javaClient是JFrame的派生类,调用基类方法

frame.setVisible(true);

ca=new clientAgent("127.0.0.1",1001); //传递服务器名称和端口号

}

  2、 捕获并处理单击"发送"按钮的事件 public void actionPerformed(ActionEvent e) { if(e.getSource()==sendButton) //判断事件源控件是否是"发送"按钮 { ca.sendRequest(inputField.getText()); //发送文本框中的文本 outputArea.append("/n" ca.getResponse()); //接收服务器回应并写入文本域 } } 四、 服务器端   1、 serverAgent类   1) 成员变量 ServerSocket svrSkt=null; Socket cltSkt=null; DataInputStream input=null; //输入流,来自客户端 PrintStream output=null; //输出流,指向客户端   2) serverAgent()建构函数 public serverAgent(int port) //main()函数传递监听端口号 { System.out.println("服务器代理正在监听,端口:" port); try { svrSkt=new ServerSocket(port); //开始监听 }catch(IOException e){System.out.println("监听端口" port "失败");} try { cltSkt=svrSkt.accept(); //接收连接请求 } catch(IOException e){System.out.println("连接失败");} try { input=new DataInputStream(cltSkt.getInputStream()); //获得输入流 output=new PrintStream(cltSkt.getOutputStream()); //获得输出流 } catch(IOException e){} output.println("欢迎......"); } 3) getRequest()方法读取客户端发送的数据



public String getRequest()

{

String frmClt=null;

try

{

frmClt=input.readLine();

}

catch(Exception e){

System.out.println("无法读取端口.....");

System.exit(0);

}

return frmClt; 

}

4) sendResponse()方法向客户端发送数据



public void sendResponse(String response)

{

try

{

output.println(response);

}

catch(Exception e){

System.out.println("写端口失败......");

System.exit(0);

}

}

2、main()函数   在main()函数中对客户端发送的不同请求进行不同的处理,本例只是介绍原理,因此服务器端只是简单地将客户端发送来的数据发送回去:



public static void main(String[] args) throws IOException

{ 

serverAgent sa=new serverAgent(1001);

while(true)

{

sa.sendResponse(sa.getRequest());

}

} 

java程序和C/C++程序的通讯  摘要:本文研究了数据存储格式中大尾小尾问题,根据此原理解决了Java程序和C/C++通讯及读取服务器端文件时的数据移植问题。问题起源该问题起源于笔者设计的基于Web的远程测控系统。它的基本原理是:服务器端运行一VC编制的服务器程序,客户端使用Java applet;VC服务器程序接收到Java applet发送的命令后,采集各种信息,并将所有数据发向applet,实现了基于Web的远 阅读详情

相关推荐

用Java编写通讯录

用Java编写通讯录

qq_44231628的博客 5720

Java通讯程序一例(转)

        本文介绍一种用Java的Socket和ServerSocket实现服务器和客户机通讯的的方法。原理是在服务器端建立ServerSocket端口并监听,接收到客户端的连接请求时建立Socket,得到Socket的输入输出流。在客户端新建Socket并获得输入输出流。服务器和客户端的输入输出流建立后使用writeLine()和println()方法彼此发送和接收数据。为提高代码效率,建

myali88的专栏 976

java 通讯录gui_java实现通讯录Gui

一,界面类package gui;import java.awt.*;import java.awt.event.*;import javax.swing.*;class AddressBookUGI extends JFrame implements ActionListener {// 面板JPanel panel = new JPanel();//JTextField SeekTextFie...

weixin_36051064的博客 1369

Java中C/S通讯程序设计一例

  一、 客户端图形界面   本例中客户端的图形界面用Swing实现,服务器端不使用图形界面 public class javaClient extends JFrame implements ActionListener//以JFrame为基类,实现ActionListener接口 { JButton sendButton; //"发送"按钮 JTextField inputField; //

虫二的专栏~~在路上~~~ 2753

BIDS数据存储格式介绍与dcm2bids安装与使用

BIDS格式&dcm2bids安装与使用

machinelearning_er的博客 7319

Ubuntu 22.04 搭建 PX4 飞控系统完全指南:从仿真到硬件试飞

定义消息文件protobufuint64 timestamp # 时间戳float32 temperature # 温度float32 humidity # 湿度生成代码:bashPX4 在 Ubuntu 22.04 的搭建涉及环境配置、编译仿真、硬件连接等多环节,核心是理解 PX4 1.14 的新特性(uXRCE-DDS、动态控制分配)。通过本文指南,开发者可快速构建稳定的 PX4 开发环境,为无人机应用开发奠定基础。

zqmgx13291的博客 3044

Java中C/S通讯程序设计一例 基于Socket的Java网络编程集粹

[quote] JButton sendButton; //"发送"按钮 JTextField inputField; // 输入框 JTextArea outputAera; // 服务器返回框 public javaClient() //在建构函数中完成图形界面的初始化 { inputField=new JTextField("这里输入..."); //供客户端输入的文本框 ...

iteye_9815的博客 290

如何使用apifox打包测试用例生成测试套件自动化执行

使用apifox打包测试用例生成测试套件自动化执行

weixin_55613512的博客 2887

用Java实现简单通讯录(程序设计作业)

用Java写了一个通讯录管理系统 package tongxunlu; import java.util.*; import java.text.*; import java.io.*; //联系人类 class Linkman { Linkman(String n,String[] p,String w,String c,String e,String b,String r){ nam...

qq_43735970的博客 1万+

HLM(多层线性模型)在stata中语句

在阅读CEPS中发现有些研究采用的是HLM模型,HLM简单来说用一个方程跑两个回归。举例,对学习成绩影响因素,不同层有不同的影响,如在个体层面上个体特征会对成绩产生影响,在学校层面学校排名等因素会对成绩产生影响,两种因素不在一个层面,每层造成的差异都不相同。 在找相关语句时候发现操作这个语句的软件大多是SPSS和HLM,对于stata操作者并不友好。因此,在有限资料中总结了HLM在stata中的语句,后面会附上学习视频和链接。 先放语句,后面对方程式一个大致解析。由于针对HLM有一本书的介绍,可能一篇文章无

weixin_44652251的博客 1万+

MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)

阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。

darcsdn 1276

Java简易通讯录

Java通讯录实现

weixin_53972936的博客 6232

【局部规划模块轨迹优化算法】EM_planner最大期望滚动优化算法

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对EM_planner最大期望滚动优化算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 762

通讯录java程序代码_java通讯录小程序,代码,

展开全部packagex.y.nio;/***人员*@authorAdministrator**/publicclassPerson{privateStringname;privateStringmobile;privateStringemail;privateStringaddress;publicStringgetName(){returnname;}pu...

weixin_32503361的博客 490

【DeepSeek实战】1、DeepSeek民用级开发全指南:从0到1掌握AI应用开发与模型蒸馏实战

DeepSeek创新性地打破了传统AI开发的技术壁垒,通过双模型架构(DeepSeek-V3和R1)实现普惠化与专业化并重。其核心优势包括:零代码操作、浏览器直接使用、中文提示词控制及低成本(2元/百万token)。用户通过简单三步(注册-配置-使用)即可快速开启AI之旅,平台提供$50免费额度支持2个月高频使用。 四大核心应用场景: 办公自动化:周报撰写、PPT生成、数据分析一键完成 内容创作:提供爆款标题生成、垂直领域写作模板 学习辅助:支持文档解析、错题讲解、知识图谱构建 生活服务:个性化行程规划

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1735

基于pytorch cnn ResNets卷积网络的模糊图像检测 完整代码数据直接运行

基于pytorch cnn ResNets卷积网络的模糊图像检测 完整代码数据直接运行

730

java通讯录

1.实现效果 ​ ​ 2.首先写一个文件读写类 ​ package tongxunlu; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; imp...

burningdzb的博客 1285

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

xk3190串口通讯JAVA开发包_java串口通讯程序

java串口通讯程序1、下载javaCommunicationsapi开发包。|是Sun公司提供的,用于开发平台独立的通讯应用程序的扩展API。2、将拷贝入C:\j2sdk1.4.2_04\bin3、将拷贝入C:\j2sdk1.4.2_04\jre\lib\ext4、将拷贝入C:\j2sdk1.4.2_04\jre\lib5、编译文件import.*;import.*;import.*;...

weixin_39944233的博客 208

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java程序-个人通讯录管理

在现在的信息时代,越来越多人增加了对手机的需求,一套完整的管理系统可以节约用户时间的同时,满足用户更多元化的需求。刚开始对于模糊查询也有自己的想法,那就是把复选框中所有可能的条件组合全都列出来,然后由系统去判断用户选择的复选框组合属于哪种,然后再去查询结果,后来,觉得这样做,会有点麻烦,最后,在向老师请教后,终于有了简单的可行的方法,那就是定义一个stringBuffer类的对象,然后去判断哪个复选框被选中了, 把被选中的复选框的条件,追加到where条件中,这样就实现了简便的模糊查询。

m0_54570435的博客 2853

Java个人通讯录

目录 1.1个人通讯率(一) 1.2 程序设计思路 1.3关键技术 1.3.1 面向对象的基本概念 1.3.2 类的定义 1.4个人通讯率(一)设计步骤 1.4.1定义类Contract 1.4.2定义类Family 1.4.3定义类Partner 1.1个人通讯录(一) 设计简单的个人通讯录系统(一),用于存储联系人信息,实现对联系人按照基本联系人、家人、工作伙伴等进行分类存储,具体要求如下: (1)联系人的基本信息包括姓名、性别、电子邮件及若...

她与剑意皆失的博客 6994

Java Udp通讯程序

最近在写嵌入式通讯程序,所以就想用Java写一个Udp通讯的服务端程序来实现,从开发板上发数据包到PC,PC上的服务端程序解析数据,以前写的Java程序比较少,所以就写了一个Java的Udp的Server和Client集一体的通讯程序,现把代码列出,还有不足之处,请各位高手指点。 /*主函数 udpmain.java*//* * To change this template, cho

alimyso的专栏 2266

通讯录总结-JAVA GUI- “婉君被通讯录吓晕”

一个可视化的通讯录界面,能够实现简单的增删改查等功能,主要运用的是Java GUI Swing

qq_60955261的博客 1875
上一篇: Java大师:曾为C#语言辗转难眠
下一篇: J2EE中的设计模式之五
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值