成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java編寫通信代碼 java通訊教程

如何使用JAVA編寫網(wǎng)絡(luò)通信程序

使用JAVA來進(jìn)行網(wǎng)絡(luò)編程

創(chuàng)新互聯(lián)是一家專業(yè)提供扶余企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為扶余眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

1)

由于客戶端通過IE同服務(wù)器建立聯(lián)系,所以客戶端使用Applet,服務(wù)器端使用Application;

2)

服務(wù)器應(yīng)設(shè)置成多線程,應(yīng)答多個(gè)客戶的請(qǐng)求;

3)

兩端通信使用SOCKET機(jī)制。

2.2客戶機(jī)/服務(wù)器通信的動(dòng)機(jī)

客戶機(jī)-服務(wù)器范例的基本動(dòng)機(jī)來自聚集問題。

為了理解這一問題,設(shè)想一個(gè)人試圖在分離的機(jī)器上啟動(dòng)兩個(gè)程序并讓它們進(jìn)行通

信,還要記住,計(jì)算機(jī)的運(yùn)行要比人的速度快許多數(shù)量級(jí)。在某人啟動(dòng)第一個(gè)程序后,

該程序開始執(zhí)行并向其對(duì)等程序發(fā)送消息,在幾個(gè)微妙內(nèi),它便發(fā)現(xiàn)對(duì)等程序還不存在,

于是就發(fā)出一條錯(cuò)誤消息,然后退出。在這時(shí),某個(gè)人啟動(dòng)了第二個(gè)程序,不幸的是,當(dāng)?shù)诙€(gè)程序開始執(zhí)行時(shí),它發(fā)現(xiàn)對(duì)等程序已經(jīng)終止執(zhí)行了,即便是兩個(gè)程序連續(xù)重新試著通信,

但由于它們每個(gè)程序執(zhí)行的速度那么快。因而它們

在同一瞬間向?qū)Ψ桨l(fā)送消息的概率是很低的。

客戶機(jī)-服務(wù)器模型是這樣解決這種聚集問題的。它要求在任何一對(duì)進(jìn)行通信的應(yīng)用進(jìn)程中,有一方必須在啟動(dòng)執(zhí)行后(無限期地)等待對(duì)方的聯(lián)系,這種解決方案是重要的,因?yàn)門CP/IP自己對(duì)入呼叫通信是不會(huì)響應(yīng)的。

由于TCP/IP并不是提供在一個(gè)報(bào)文到達(dá)后自動(dòng)創(chuàng)建運(yùn)行程序的任何機(jī)制,因此一個(gè)程序必須在任一請(qǐng)求到來前就在那里等待以接受通信。

因此,為確保計(jì)算機(jī)已準(zhǔn)備好了進(jìn)行通信,多數(shù)系統(tǒng)管理員都安排通信程序在操作系統(tǒng)引導(dǎo)時(shí)就自動(dòng)啟動(dòng)。每個(gè)程序都一直運(yùn)行下去,以便等待下一個(gè)服務(wù)請(qǐng)求的到來(此服務(wù)是該程序提供的)

望采納?。?!

用java編寫一個(gè)能進(jìn)行簡單TCP/IP通信的C/S程序

import java.net.ServerSocket;

import java.net.Socket;

public class TcpServer

{

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

{

// 創(chuàng)建服務(wù)器端的socket對(duì)象

ServerSocket ss = new ServerSocket(5000);

// 監(jiān)聽連接

Socket socket = ss.accept();

// 直到連接建立好之后代碼才會(huì)往下執(zhí)行

System.out.println("Connected Successfully!");

}

}

import java.net.Socket;

public class TcpClient

{

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

{

Socket socket = new Socket("127.0.0.1", 5000);

}

}

java實(shí)現(xiàn)串口通信代碼

public static void process() {

try {

Enumeration portList = CommPortIdentifier.getPortIdentifiers();

while (portList.hasMoreElements())

{

CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement();

if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)//如果端口類型是串口則判斷名稱

{

if(portId.getName().equals("COM1")){//如果是COM1端口則退出循環(huán)

break;

}else{

portId=null;

}

}

}

SerialPort serialPort = (SerialPort)portId.open("Serial_Communication", 1000);//打開串口的超時(shí)時(shí)間為1000ms

serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);//設(shè)置串口速率為9600,數(shù)據(jù)位8位,停止位1們,奇偶校驗(yàn)無

InputStream in = serialPort.getInputStream();//得到輸入流

OutputStream out = serialPort.getOutputStream();//得到輸出流

//進(jìn)行輸入輸出操作

//操作結(jié)束后

in.close();

out.close();

serialPort.close();//關(guān)閉串口

} catch (PortInUseException e) {

e.printStackTrace();

} catch (UnsupportedCommOperationException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

java通訊錄管理系統(tǒng)設(shè)計(jì)代碼怎么編譯

java編寫這個(gè)通訊錄管理系統(tǒng)

java編寫這個(gè)通訊錄管理系統(tǒng)_Java如何實(shí)現(xiàn)通訊錄管理系統(tǒng)

咕嚕嚕在芬蘭

原創(chuàng)

關(guān)注

3點(diǎn)贊·2305人閱讀

Java如何實(shí)現(xiàn)通訊錄管理系統(tǒng)

發(fā)布時(shí)間:2020-07-28 09:39:42

來源:億速云

閱讀:65

作者:Leah

這篇文章將為大家詳細(xì)講解有關(guān)Java如何實(shí)現(xiàn)通訊錄管理系統(tǒng),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

本文實(shí)例為大家分享了java實(shí)現(xiàn)通訊錄管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

完成項(xiàng)目的流程:

1.根據(jù)需求,確定大體方向

2.功能模塊分析

3.界面實(shí)現(xiàn)

4.功能模塊設(shè)計(jì)

5.coding

6.代碼測(cè)試

下面是源代碼:import java.awt.Container;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Scanner;

import java.util.concurrent.SynchronousQueue;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.WindowConstants;

import javax.swing.text.html.HTMLDocument.Iterator;

class Infro{

public String id;

public String name;

public String sex;

public String address;

public String e_mail;

public String phoneNumber;

static int index = 0;

static ArrayList list = new ArrayList();

static int len = list.size();

//構(gòu)造函數(shù)

public Infro(String id,String name,String sex,String address,String e_mail,String phoneNumber){

this.id = id;

this.name = name;

this.sex = sex;

this.address = address;

this.e_mail = e_mail;

this.phoneNumber = phoneNumber;

}

public String toString(){

return "編號(hào):"+id+" 姓名:"+name+" 性別:"+sex+" 通訊地址:"+address+" 郵箱地址:"+e_mail+" 電話:"+phoneNumber;

}

/**

* 添加功能

**/

public static void addFunction(){//添加功能

Infro infro = new Infro("","","","","","");

System.out.println("請(qǐng)輸入添加的數(shù)據(jù):");

Scanner in = new Scanner(System.in);

System.out.println("輸入編號(hào):");

infro.id = in.next();

System.out.println("輸入姓名:");

infro.name = in.next();

System.out.println("輸入性別:");

infro.sex = in.next();

System.out.println("輸入通訊地址:");

infro.address = in.next();

System.

out.println("輸入郵箱地址:");

infro.e_mail = in.next();

System.out.println("輸入電話:");

infro.phoneNumber = in.next();

list.add(index,infro);

index++;

if(list.isEmpty()){

System.out.println("數(shù)據(jù)添加失敗啦");

}else{

System.out.println("數(shù)據(jù)添加成功啦");

len++;//list集合長度加一

// System.out.println(list.get(0).toString());

}

}

// public static void deleteFunction(){//刪除功能

// System.out.println("輸入要?jiǎng)h除的聯(lián)系人的編號(hào)");

// Scanner in_2 = new Scanner(System.in);

// String d1 = in_2.nextLine();

// for(int a= 0; a

// if(d1.equals(list.get(a).id)){

// list.remove(list.get(a));

// len --;

// }

// }

// }

/**

* 刪除功能

**/

public static void deleteFunction(){

System.out.println("輸入要?jiǎng)h除的聯(lián)系人的編號(hào)");

Scanner in_2 = new Scanner(System.in);

String d1 = in_2.nextLine();

java.util.Iterator it = list.iterator();

while (it.hasNext()){

Infro infro = it.next();

if (infro.id.equals(d1)){

it.remove();

--index;//一定要加這個(gè),否則當(dāng)做了刪除操作再做添加操作的時(shí)候會(huì)出現(xiàn)異常(類似于指針,棧)

System.out.println("刪除完畢"+"此時(shí)通訊錄記錄條數(shù)為:" + --len);

}

}

}

/**

* 修改功能

**/

public static void reditFunction(){

System.out.println("輸入要修改的通訊錄的Id");

Scanner in_r = new Scanner(System.in);

String r1 = in_r.nextLine();

for(int a = 0; a len;a++){

if(r1.equals(list.get(a).id)){

System.out.println("輸入修改后的姓名:");

String name_1 = in_r.next();

list.get(a).name = name_1;

System.out.println("輸入修改后的性別:");

String sex_1 = in_r.next();

list.get(a).sex = sex_1;

System.out.println("輸入修改后的通訊地址:");

String address_1 = in_r.next();

list.get(a).address = address_1;

System.out.println("輸入修改后的郵箱地址:");

String e_mail_1 = in_r.next();

list.get(a).e_mail = e_mail_1;

System.out.println("輸入修改后的電話:");

String phoneNumber_1 = in_r.next();

list.get(a).phoneNumber = phoneNumber_1;

System.out.println("數(shù)據(jù)修改完畢");

}

}

}

/**

* 查詢功能

**/

public static void searchFunction() throws Exception{//查詢功能

System.out.println("請(qǐng)輸入要查詢的姓名:");

Scanner in_1 = new Scanner(System.in);

String s1=in_1.nextLine();

for(int a= 0; a

if(s1.equals(list.get(a).name)){

System.out.println(list.get(a).toString());

}

}

}

/**

* 顯示功能

**/

public static void showFunction(){

for(int i = 0 ;i

System.out.println(list.get(i).toString());

}

}

/**

* 保存功能

**/

public static void writeFunction() throws IOException{

FileWriter writer = new FileWriter("通訊錄管理.txt");

for(int i = 0 ;i

String []strwriter = new String[len];

strwriter[i]=list.get(i).toString();

writer.write(strwriter[i]);

writer.write("\r\n");

System.out.println("成功寫入一行數(shù)據(jù)到 通訊錄管理.txt 中");

}

writer.close();//關(guān)閉寫入流,釋放資源

}

/**

* 讀取功能

**/

public static void readFunction() throws IOException{

FileReader reader = new FileReader("通訊錄管理.txt");

BufferedReader br = new BufferedReader(reader);

String str;

while((str = br.readLine()) != null){//每次讀取一行文本,判斷是否到達(dá)文件尾

System.out.println(str);

}

br.close();

}

}

public class Demo extends JFrame {

/**

* 界面設(shè)計(jì)

**/

public Demo(){

Container c = getContentPane(); //定義一個(gè)頂級(jí)容器c

JPanel jp = new JPanel(); //新建JPanel面板--jp

JButton button1 = new JButton("新建聯(lián)系人");

JButton button2 = new JButton("刪除聯(lián)系人");

JButton button3 = new JButton("編輯聯(lián)系人");

JButton button4 = new JButton("查找聯(lián)系人");

JButton button5 = new JButton("顯示所有聯(lián)系人");

JButton button6 = new JButton("保存聯(lián)系人到本地");

JButton button7 = new JButton("讀取本地聯(lián)系人");

jp.setLayout(new GridLayout(2,4,5,5));//新建網(wǎng)格布局管理器(行數(shù),列數(shù),組件間的水平垂直間距)

jp.add(button1);

jp.add(button2);

jp.add(button3);

jp.add(button4);

jp.add(button5);

jp.add(button6);

jp.add(button7);

c.add(jp);//將JPanel面板jp添加到頂級(jí)容器c中

setSize(600,500);

setTitle("*通 訊 錄 管 理 系 統(tǒng)*");

setVisible(true);

setResizable(false);//窗體大小由程序員決定,用戶不能自由改變大小

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

/**

*按鍵響應(yīng)

*

**/

button1.addActionListener(new ActionListener(){//添加功能實(shí)現(xiàn)

public void actionPerformed(ActionEvent arg0){

Infro.addFunction();

}

});

button2.addActionListener(new ActionListener(){//刪除功能實(shí)現(xiàn)

public void actionPerformed(ActionEvent arg0){

Infro.deleteFunction();

}

});

button3.addActionListener(new ActionListener(){//修改功能實(shí)現(xiàn)

public void actionPerformed(ActionEvent arg0){

Infro.reditFunction();

}

});

button4.addActionListener(new ActionListener(){//查詢功能實(shí)現(xiàn)

public void actionPerformed(ActionEvent arg0){

try {

Infro.searchFunction();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

button5.addActionListener(new ActionListener(){//顯示功能實(shí)現(xiàn)

public void actionPerformed(ActionEvent arg0){

Infro.showFunction();

}

});

button6.addActionListener(new ActionListener(){//保存功能實(shí)現(xiàn)

public void actionPerformed(ActionEvent arg0){

try {

Infro.writeFunction();

} catch (IOException e) {

e.printStackTrace();

}

}

});

button7.addActionListener(new ActionListener(){//讀取功能實(shí)現(xiàn)

public void actionPerformed(ActionEvent arg0){

try {

Infro.readFunction();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

}

public static void main(String[] args) {

// TODO Auto-generated method stub

new Demo();

Infro a = new Infro("", "", "", "", "", "");

}

}

關(guān)于Java如何實(shí)現(xiàn)通訊錄管理系統(tǒng)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

新聞標(biāo)題:java編寫通信代碼 java通訊教程
本文網(wǎng)址:http://jinyejixie.com/article10/dddhggo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、定制網(wǎng)站網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
枝江市| 丹江口市| 噶尔县| 云龙县| 武穴市| 普格县| 隆子县| 汝南县| 磐石市| 宜都市| 剑川县| 金湖县| 三穗县| 广平县| 穆棱市| 永川市| 黑山县| 济源市| 南充市| 衡水市| 怀柔区| 改则县| 拉萨市| 达州市| 亳州市| 图们市| 保定市| 新竹县| 梁平县| 莱阳市| 洪洞县| 阿克陶县| 宜昌市| 天祝| 罗甸县| 贵溪市| 甘泉县| 逊克县| 高州市| 泰兴市| 佛冈县|