欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

網(wǎng)絡(luò)通訊java代碼 網(wǎng)絡(luò)通信代碼

java代碼TCP/IP網(wǎng)絡(luò)通信服務(wù)器客戶端,實(shí)現(xiàn)雙方信息交互。

package?com.weixin.test;

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

import?java.io.IOException;

import?java.io.InputStream;

import?java.io.OutputStream;

import?java.net.InetAddress;

import?java.net.ServerSocket;

import?java.net.Socket;

import?org.junit.Test;

public?class?ScoketTest?{

@Test

public?void?client()?throws?Exception{

InetAddress?i=InetAddress.getByName("127.0.0.1");

Socket?s=new?Socket(i,?9000);

OutputStream?outputStream?=?s.getOutputStream();

outputStream.write("服務(wù)端你好,我是客戶端哦!".getBytes());

s.shutdownOutput();

InputStream?inputStream=s.getInputStream();

int?length=0;

byte[]?bytes=new?byte[1024];

while?((length=inputStream.read(bytes))!=-1)?{

System.err.println(new?String(bytes,0,length));

}

inputStream.close();

outputStream.close();

s.close();

}

@Test

public?void?server()?throws?Exception{

ServerSocket?serverSocket=new?ServerSocket(9000);

Socket?socket?=?serverSocket.accept();

InputStream?inputStream?=?socket.getInputStream();

OutputStream?outputStream?=?socket.getOutputStream();

int?length=0;

byte[]?bytes=new?byte[1024];

while?((length=inputStream.read(bytes))!=-1)?{

System.err.println(new?String(bytes,?0,length));

}

outputStream.write("客戶端你好,本王已收到!".getBytes());

outputStream.close();

inputStream.close();

socket.close();

serverSocket.close();

}

}

如何用java實(shí)現(xiàn)網(wǎng)絡(luò)通信

你說(shuō)的我明白。如果真正使用alohal協(xié)議的時(shí)候,所有的機(jī)器都可以檢測(cè)網(wǎng)絡(luò)電平變化的是吧?但是使用Java編寫(xiě)模擬程序的話,我們并不能可能檢測(cè)電平的變換,只能通過(guò)一定的手段來(lái)模擬這個(gè)過(guò)程。如果你將一個(gè)包裹群發(fā),這樣所有的機(jī)器都可以接受這個(gè)包,這樣就可以做到所有機(jī)器模擬檢測(cè)電平變化的這個(gè)要求。我認(rèn)為這個(gè)是最有說(shuō)服力的模擬方法了。

線程需要使用Thread類型,重寫(xiě)里面的run函數(shù),調(diào)用start()啟動(dòng)線程,具體可以搜索一把Thread,例子遍地都是。

UDP協(xié)議使用Socket類型,初始化的時(shí)候參數(shù)里面綁定(或者初始化好以后直接調(diào)用bind綁定端口,一般輸出不用綁定,監(jiān)聽(tīng)的時(shí)候需要綁定)。調(diào)用里面的getOutputStream得到輸入流。調(diào)用getInputStream得到輸入流。

OutputStream:輸出流,用于向網(wǎng)絡(luò)中輸出數(shù)據(jù)。調(diào)用其中的write函數(shù)進(jìn)行輸出,函數(shù)的參數(shù)就是輸出的byte數(shù)組。

InputStream: 輸入流,用于接受網(wǎng)絡(luò)里面的數(shù)據(jù)。調(diào)用其中的read可以得到輸入的包。

String:你要輸出的字符串,調(diào)用里面的getBytes可以得到String的byte數(shù)組。

其它的應(yīng)該用不到什么了吧。

**********************************

1.發(fā)送字符串的話用byte[]就可以啊。用Socket類里面的getOutputStream可以獲得一個(gè)發(fā)送數(shù)據(jù)的OutputStream類對(duì)象。這個(gè)類對(duì)象有一個(gè)函數(shù)write(byte[] b) 可以向網(wǎng)絡(luò)寫(xiě)byte[]。一個(gè)字符串可以通過(guò)String類中的getBytes() 轉(zhuǎn)化成byte[]。這樣總該明白了吧

2.說(shuō)一下我的思路:開(kāi)一個(gè)端口A發(fā)送UDP包(廣播給端口B),用于模擬發(fā)送,用一個(gè)線程(線程1)來(lái)跑。開(kāi)端口B接受局域網(wǎng)內(nèi)的包,用另外一個(gè)線程(線程2)來(lái)跑。在發(fā)送UDP包的時(shí)候,將變量mark置1,發(fā)送完置0。線程2如果接受到一個(gè)不是從本機(jī)發(fā)送的包,而且此時(shí)mark是1(說(shuō)明本機(jī)和另外一個(gè)機(jī)器同時(shí)在發(fā)包),發(fā)生了沖突,表示線程1這次發(fā)送的包失敗。

使用Java編寫(xiě)B(tài)/S網(wǎng)絡(luò)通信程序

網(wǎng)絡(luò)上的系統(tǒng)結(jié)構(gòu)多為客戶/服務(wù)器模式 服務(wù)器端負(fù)責(zé)數(shù)據(jù)和圖像等的存儲(chǔ) 維護(hù) 治理以及傳遞 客戶端則負(fù)責(zé)人機(jī)界面的操作 送出需求及顯示收回的數(shù)據(jù) 下面介紹一下如何使用Java來(lái)進(jìn)行網(wǎng)絡(luò)編程 ) 由于客戶端通過(guò)IE同服務(wù)器建立聯(lián)系 所以客戶端使用Applet 服務(wù)器端使用Application ) 服務(wù)器應(yīng)設(shè)置成多線程 應(yīng)答多個(gè)客戶的請(qǐng)求 ) 兩端通信使用SOCKET機(jī)制 Java中輸入/輸出流概念 過(guò)濾流DataInputStream 和DataOutputStream 除了分別作為FilterInputStream 和FilterOutputStream的子類外 還分別實(shí)現(xiàn)了接口DataInput 和DataOutput 接口DataInput 中定義的方法主要包括從流中讀取基本類型的數(shù)據(jù) 讀取一行數(shù)據(jù) 或者讀取指定長(zhǎng)度的字節(jié)數(shù) 如readBoolean() readInt() readLine() readFully()等 接口DataOutput中定義的方法主要是向流中寫(xiě)入基本類型的數(shù)據(jù)或者寫(xiě)入一定長(zhǎng)度的字節(jié)數(shù)組 如writeChar() writeDouble() DataInputStream可以從所連接的輸入流中讀取與機(jī)器無(wú)關(guān)的基本類型數(shù)據(jù) 用以實(shí)現(xiàn)一種獨(dú)立于具體平臺(tái)的輸入方式 DataInputStream 可以向所連接的輸出流寫(xiě)入基本類型的數(shù)據(jù) Socket 機(jī)制 Socket是面向客戶/服務(wù)器模型設(shè)計(jì)的 網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通訊連接實(shí)現(xiàn)數(shù)據(jù)的交換 這個(gè)雙向鏈路的一端稱為一個(gè)Socket Socket通常用來(lái)實(shí)現(xiàn)客戶方和服務(wù)方的連接 客戶程序可以向Socket寫(xiě)請(qǐng)求 服務(wù)器將處理此請(qǐng)求 然后通過(guò)Socket將結(jié)果返回給用戶 Socket通信機(jī)制提供了兩種通訊方式 有聯(lián)接和無(wú)聯(lián)接方式 分別面向不同的應(yīng)用需求 使用有聯(lián)接方式時(shí) 通信鏈路提供了可靠的 全雙工的字節(jié)流服務(wù) 在該方式下 通信雙方必須創(chuàng)建一個(gè)聯(lián)接過(guò)程并建立一條通訊鏈路 以后的網(wǎng)絡(luò)通信操作完全在這一對(duì)進(jìn)程之間進(jìn)行 通信完畢關(guān)閉此聯(lián)接過(guò)程 使用無(wú)聯(lián)接方式時(shí)其系統(tǒng)開(kāi)銷比無(wú)聯(lián)接方式小 但通信鏈路提供了不可靠的數(shù)據(jù)報(bào)服務(wù) 不能保證信源所傳輸?shù)臄?shù)據(jù)一定能夠到達(dá)信宿 在該方式下 通信雙方不必創(chuàng)建一個(gè)聯(lián)接過(guò)程和建立一條通訊鏈路 網(wǎng)絡(luò)通信操作在不同的主機(jī)和進(jìn)程之間轉(zhuǎn)發(fā)進(jìn)行 Java語(yǔ)言簡(jiǎn)介Java語(yǔ)言的優(yōu)點(diǎn)主要表現(xiàn)在 簡(jiǎn)單 面向?qū)ο?多線程 分布性 體系結(jié)構(gòu)中立 安全性等方面 ( ) 簡(jiǎn)單性Java與C++語(yǔ)言非常相近 但Java比C++簡(jiǎn)單 它拋棄了C++中的一些不是絕對(duì)必要的功能 如頭文件 預(yù)處理文件 指針 結(jié)構(gòu) 運(yùn)算符重載 多重繼續(xù)以及自動(dòng)強(qiáng)迫同型 Java實(shí)現(xiàn)了自動(dòng)的垃圾收集 簡(jiǎn)化了內(nèi)存治理的工作 這使程序設(shè)計(jì)更加簡(jiǎn)便 同時(shí)減少了出錯(cuò)的可能 ( ) 面向?qū)ο驤ava提供了簡(jiǎn)單的類機(jī)制和動(dòng)態(tài)的構(gòu)架模型 對(duì)象中封裝了它的狀態(tài)變量和方法 很好地實(shí)現(xiàn)了模塊化和信息隱藏 而類則提供了一類對(duì)象的原型 通過(guò)繼續(xù)和重載機(jī)制 子類可以使用或重新定義父類或超類所提供的方法 從而既實(shí)現(xiàn)了代碼的復(fù)用 又提供了一種動(dòng)態(tài)的解決方案 Java是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言 它除了數(shù)組 布爾和字符三個(gè)基本數(shù)據(jù)類型外的其它類都是對(duì)象 它不再支持全局變量 在Java中 假如不創(chuàng)建新類就無(wú)法創(chuàng)建程序 Java程序在運(yùn)行時(shí)必須先創(chuàng)建一個(gè)類的實(shí)例 然后才能提交運(yùn)行 Java同樣支持繼續(xù)特性 Java的類可以從其它類中繼續(xù)行為 但Java只支持類的單重繼續(xù) 即每個(gè)類只能從一個(gè)類中繼續(xù) Java支持界面 界面答應(yīng)程序員定義方法但又不立即實(shí)現(xiàn) 一個(gè)類可以實(shí)現(xiàn)多個(gè)界面 利用界面可以得到多重繼續(xù)的許多優(yōu)點(diǎn)而又沒(méi)有多重繼續(xù)的問(wèn)題 ( ) 多線程多線程使應(yīng)用程序可以同時(shí)進(jìn)行不同的操作 處理不同的事件 在多線程機(jī)制中 不同的線程處理不同的任務(wù) 他們之間互不干涉 不會(huì)由于一處等待影響其他部分 這樣輕易實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互操作 Java程序可以有多個(gè)執(zhí)行線程 如可以讓一個(gè)線程進(jìn)行復(fù)雜的計(jì)算 而讓另一個(gè)線程與用戶進(jìn)行交互 這樣用戶可以在不中斷計(jì)算線程的前提下與系統(tǒng)進(jìn)行交互 多線程保證了較高的執(zhí)行效率 ( ) 分布性Java是面向網(wǎng)絡(luò)的語(yǔ)言 通過(guò)它提供的類庫(kù)可以處理TCP/IP協(xié)議 用戶可以通過(guò)URL地址在網(wǎng)絡(luò)上很方便的訪問(wèn)其他對(duì)象 ( ) 體系結(jié)構(gòu)中立Java是一種網(wǎng)絡(luò)語(yǔ)言 為使Java程序能在網(wǎng)絡(luò)的任何地方運(yùn)行 Java解釋器生成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼結(jié)構(gòu)的文件格式 Java為了做到結(jié)構(gòu)中立 除生成機(jī)器無(wú)關(guān)的字節(jié)碼外 還制定了完全統(tǒng)一的語(yǔ)言文本 如Java的基本數(shù)據(jù)類型不會(huì)隨目標(biāo)機(jī)的變化而變化 一個(gè)整型總是 位 一個(gè)長(zhǎng)整型總是 位 為了使Java的應(yīng)用程序能不依靠于具體的系統(tǒng) Java語(yǔ)言環(huán)境還提供了用于訪問(wèn)底層操作系統(tǒng)功能的類組成的包 當(dāng)程序使用這些包時(shí) 可以確保它能運(yùn)行在各種支持Java的平臺(tái)上 lishixinzhi/Article/program/Java/hx/201311/25926

用JAVA 編寫(xiě)簡(jiǎn)單網(wǎng)絡(luò)聊天程序

/**

* 基于UDP協(xié)議的聊天程序

*

* 2007.9.18

* */

//導(dǎo)入包

import java.awt.*;

import java.awt.event.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

import java.net.*;

public class Chat extends JFrame implements ActionListener

{

//廣播地址或者對(duì)方的地址

public static final String sendIP = "172.18.8.255";

//發(fā)送端口9527

public static final int sendPort = 9527;

JPanel p = new JPanel();

List lst = new List(); //消息顯示

JTextField txtIP = new JTextField(18); //填寫(xiě)IP地址

JTextField txtMSG = new JTextField(20); //填寫(xiě)發(fā)送消息

JLabel lblIP = new JLabel("IP地址:");

JLabel lblMSG = new JLabel("消息:");

JButton btnSend = new JButton("發(fā)送");

byte [] buf;

//定義DatagramSocket的對(duì)象必須進(jìn)行異常處理

//發(fā)送和接收數(shù)據(jù)報(bào)包的套接字

DatagramSocket ds = null;

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

public Chat()

{

CreateInterFace();

//注冊(cè)消息框監(jiān)聽(tīng)器

txtMSG.addActionListener(this);

btnSend.addActionListener(this);

try

{

//端口:9527

ds =new DatagramSocket(sendPort);

}

catch(Exception ex)

{

ex.printStackTrace();

}

//============接受消息============

//匿名類

new Thread(new Runnable()

{

public void run()

{

byte buf[] = new byte[1024];

//表示接受數(shù)據(jù)報(bào)包

while(true)

{

try

{

DatagramPacket dp = new DatagramPacket(buf,1024,InetAddress.getByName(txtIP.getText()),sendPort);

ds.receive(dp);

lst.add("【消息來(lái)自】◆" + dp.getAddress().getHostAddress() + "◆"+"【說(shuō)】:" + new String (buf,0,dp.getLength()) /*+ dp.getPort()*/,0);

}

catch(Exception e)

{

if(ds.isClosed())

{

e.printStackTrace();

}

}

}

}

}).start();

//關(guān)閉窗體事件

this.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent w)

{

System.out.println("test");

int n=JOptionPane.showConfirmDialog(null,"是否要退出?","退出",JOptionPane.YES_NO_OPTION);

if(n==JOptionPane.YES_OPTION)

{

dispose();

System.exit(0);

ds.close();//關(guān)閉ds對(duì)象//關(guān)閉數(shù)據(jù)報(bào)套接字

}

}

});

}

//界面設(shè)計(jì)布局

public void CreateInterFace()

{

this.add(lst,BorderLayout.CENTER);

this.add(p,BorderLayout.SOUTH);

p.add(lblIP);

p.add(txtIP);

p.add(lblMSG);

p.add(txtMSG);

p.add(btnSend);

txtIP.setText(sendIP);

//背景顏色

lst.setBackground(Color.yellow);

//JAVA默認(rèn)風(fēng)格

this.setUndecorated(true);

this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);

this.setSize(600,500);

this.setTitle("〓聊天室〓");

this.setResizable(false);//不能改變窗體大小

this.setLocationRelativeTo(null);//窗體居中

this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

this.setVisible(true);

txtMSG.requestFocus();//消息框得到焦點(diǎn)

}

//===============================Main函數(shù)===============================

public static void main(String[]args)

{

new Chat();

}

//================================發(fā)送消息===============================

//消息框回車發(fā)送消息事件

public void actionPerformed(ActionEvent e)

{

//得到文本內(nèi)容

buf = txtMSG.getText().getBytes();

//判斷消息框是否為空

if (txtMSG.getText().length()==0)

{

JOptionPane.showMessageDialog(null,"發(fā)送消息不能為空","提示",JOptionPane.WARNING_MESSAGE);

}

else{

try

{

InetAddress address = InetAddress.getByName(sendIP);

DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);

ds.send(dp);

}

catch(Exception ex)

{

ex.printStackTrace();

}

}

txtMSG.setText("");//清空消息框

//點(diǎn)發(fā)送按鈕發(fā)送消息事件

if(e.getSource()==btnSend)

{

buf = txtMSG.getText().getBytes();

try

{

DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName(txtIP.getText()),sendPort);

}

catch(Exception ex)

{

ex.printStackTrace();

}

txtMSG.setText("");//清空消息框

txtMSG.requestFocus();

}

}

}

用Java編寫(xiě)簡(jiǎn)單的UDP網(wǎng)絡(luò)通信程序

Java中封裝了大量的socket API 為編寫(xiě)網(wǎng)絡(luò)通信程序提供了極大的方便 在計(jì)算機(jī)網(wǎng)絡(luò)的學(xué)習(xí)中 大家都已熟練掌握了TCP/UDP的基本原理 在此不在贅述 僅給出接收端和發(fā)送端的源代碼 供大家討論學(xué)習(xí) 發(fā)送端代碼如下:import java io *;import java lang *;import *;public class uclient{private DatagramSocket cli;private DatagramPacket pac;private byte *** [];private String sen;public uclient(){Init();}public void Init(){try{//指定端口號(hào) 避免與其他應(yīng)用程序發(fā)生沖突cli=new DatagramSocket( ); *** =new byte[ ];sen= UDP方式發(fā)送數(shù)據(jù) ; *** =sen getBytes();pac=new DatagramPacket( *** *** length InetAddress getByName( localhost ) );cli send(pac);}catch(SocketException se){se printStackTrace();}catch(IOException ie){ie printStackTrace();}}public static void main(String args[]){new uclient();}}接收端數(shù)據(jù):import java io *;import java lang *;import *;public class userve{private DatagramSocket ser;private DatagramPacket pac;private byte rb[];private String rev;public userve(){Init();}public void Init(){try{ser=new DatagramSocket( );rb=new byte[ ];pac=new DatagramPacket(rb rb length);rev= ;int i= ;while(i== )//無(wú)數(shù)據(jù) 則循環(huán){ser receive(pac);i=pac getLength();//接收數(shù)據(jù)if(i ){//指定接收到數(shù)據(jù)的長(zhǎng)度 可使接收數(shù)據(jù)正常顯示 開(kāi)始時(shí)很容易忽略這一點(diǎn)rev=new String(rb pac getLength());System out println(rev);i= ;//循環(huán)接收}}}catch(Exception e){e printStackTrace();}}public static void main(String args[]){new userve();}} lishixinzhi/Article/program/Java/hx/201311/26023

當(dāng)前文章:網(wǎng)絡(luò)通訊java代碼 網(wǎng)絡(luò)通信代碼
文章鏈接:http://aaarwkj.com/article24/doodoje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、標(biāo)簽優(yōu)化、網(wǎng)站制作、定制網(wǎng)站、自適應(yīng)網(wǎng)站、App設(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
国产三级国产精品三级| av在线中文字幕剧情| 亚洲国产日韩精品自拍av| 日韩欧美一区二区三级| 免费观看黄片视频在线观看| 五月天男人的天堂精品| 91欧美精品一区二区| 亚州精品乱码久久电影| 日韩精品中文乱码在线观看| 理论三级麻豆国产在线| 亚洲国产成人不卡高清麻豆| 欧美特黄高清在线观看| 国产极品嫩模在线观看91| 国产精品成人亚洲一区二区 | 手机在线观看午夜小视频| 成人永久免费播放平台| 男人天堂插插综合搜索| 丰满人妻侵犯中文字幕| 久久精品性少妇一区=区三区| 精品女同一区二区三区网站| 美腿丝袜亚洲综合一区| 日韩三级成人在线视频| 欧美日韩一区二区三区四区高清| 亚洲人成伊人成综合网中文| 亚洲福利一区二区三区| 国产婷婷成人久久av免费高清 | 18禁在线免费观看网站| 日本又色又爽又黄的观看| 欧美乱码中文字幕在线观看| 全部网站免费在线观看等| 亚洲一区成人免费电影| 极品美女被插到高潮喷水| 亚洲国产欧美在线人成人| 色哟哟哟哟免费观看视频| 毛茸茸的阴户在线观看| 国产亚洲一区二区三区在线| 久久99精品综合国产女同| 日本人的黄色录像视频| 亚洲综合日韩精品在线| 日韩版色视频在线观看| 日本成熟妇高潮视频在线观看不卡|