网络_2_2010_03_13
2010-03-13 19:33
295 查看
Socket TCP的连接
两个java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket
Socket通常用来实现client—server连接
Java.net包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端
建立连接时所需的寻址信息为远程计算机的IP地址和端口号(Port number)
区分不同应用程序,两个字节,最多可有65536个应用程序
自己用的1024以后的端口号
端口号:
TCP端口
UDP端口
每一个是65536个端口
先写|Server在写Client
启动也先启Server在启Client
TCP Socket通信模型
代码清单:
---------------------------------------------------------------------------------------------------------------------------------------------------------import java.net.*;
import java.io.*;
public class TCPServer{
public static void main(String [] args)throws Exception{
ServerSocket ss = new ServerSocket(6666);
while(true){
Socket s = ss.accept();//阻塞式的
System.out.println("a client connect");
DataInputStream dis = new DataInputStream(s.getInputStream());
Thread.sleep(30000);
System.out.println(dis.readUTF());//阻塞式的
dis.close();
s.close();
//System.out.println("my name is server");
}
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.net.*;
import java.io.*;
public class TCPClient{
public static void main(String [] args)throws Exception{
Socket s = new Socket("127.0.0.1",6666);
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hello server!");
dos.flush();
dos.close();
s.close();
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.net.*;
import java.io.*;
public class TestServer{
public static void main(String [] args){
try{
ServerSocket s = new ServerSocket(8888);
while(true){
Socket s1 = s.accept();
OutputStream os = s1.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hello,"+s1.getInetAddress()+ //得到客户端的信息
"port# "+s1.getPort()+"bye-bye");
dos.close();
s1.close();
}
}catch(IOException e){
e.printStackTrace();
System.out.println("程序运行出错;"+e);
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.net.*;
import java.io.*;
public class TestClient{
public static void main(String [] args){
try{
Socket s1 = new Socket("127.0.0.1",8888);
InputStream is = s1.getInputStream();
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF());
dis.close();
s1.close();
}catch(ConnectException connExc){
connExc.printStackTrace();
System.out.println("服务器连接失败!");
}catch(IOException e){
e.printStackTrace();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
public class TestSocketServer{
public static void main(String [] args){
InputStream in = null;
OutputStream out = null;
try{
ServerSocket ss = new ServerSocket(5888);
Socket socket = ss.accept();
in = socket.getInputStream();
out = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(out);
DataInputStream dis = new DataInputStream(in);
String s = null;
if((s=dis.readUTF())!=null){
System.out.println(s);
System.out.println("from: "+socket.getInetAddress());
System.out.println("Port: "+socket.getPort());
}
dos.writeUTF("hi,hello");
dis.close();
dos.close();
socket.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
public class TestSocketClient{
public static void main(String [] args){
InputStream is = null;
OutputStream os = null;
try{
Socket socket = new Socket("localhost",5888);
is = socket.getInputStream();
os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hey");
String s = null;
if((s=dis.readUTF())!=null){
System.out.println(s);
}
dos.close();
dis.close();
socket.close();
}catch(UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
public class TestSocketClient{
public static void main(String [] args){
InputStream is = null;
OutputStream os = null;
try{
Socket socket = new Socket("localhost",5888);
is = socket.getInputStream();
os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hey");
String s = null;
if((s=dis.readUTF())!=null){
System.out.println(s);
}
dos.close();
dis.close();
socket.close();
}catch(UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
两个java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket
Socket通常用来实现client—server连接
Java.net包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端
建立连接时所需的寻址信息为远程计算机的IP地址和端口号(Port number)
区分不同应用程序,两个字节,最多可有65536个应用程序
自己用的1024以后的端口号
端口号:
TCP端口
UDP端口
每一个是65536个端口
先写|Server在写Client
启动也先启Server在启Client
TCP Socket通信模型
代码清单:
---------------------------------------------------------------------------------------------------------------------------------------------------------import java.net.*;
import java.io.*;
public class TCPServer{
public static void main(String [] args)throws Exception{
ServerSocket ss = new ServerSocket(6666);
while(true){
Socket s = ss.accept();//阻塞式的
System.out.println("a client connect");
DataInputStream dis = new DataInputStream(s.getInputStream());
Thread.sleep(30000);
System.out.println(dis.readUTF());//阻塞式的
dis.close();
s.close();
//System.out.println("my name is server");
}
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.net.*;
import java.io.*;
public class TCPClient{
public static void main(String [] args)throws Exception{
Socket s = new Socket("127.0.0.1",6666);
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hello server!");
dos.flush();
dos.close();
s.close();
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.net.*;
import java.io.*;
public class TestServer{
public static void main(String [] args){
try{
ServerSocket s = new ServerSocket(8888);
while(true){
Socket s1 = s.accept();
OutputStream os = s1.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hello,"+s1.getInetAddress()+ //得到客户端的信息
"port# "+s1.getPort()+"bye-bye");
dos.close();
s1.close();
}
}catch(IOException e){
e.printStackTrace();
System.out.println("程序运行出错;"+e);
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.net.*;
import java.io.*;
public class TestClient{
public static void main(String [] args){
try{
Socket s1 = new Socket("127.0.0.1",8888);
InputStream is = s1.getInputStream();
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF());
dis.close();
s1.close();
}catch(ConnectException connExc){
connExc.printStackTrace();
System.out.println("服务器连接失败!");
}catch(IOException e){
e.printStackTrace();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
public class TestSocketServer{
public static void main(String [] args){
InputStream in = null;
OutputStream out = null;
try{
ServerSocket ss = new ServerSocket(5888);
Socket socket = ss.accept();
in = socket.getInputStream();
out = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(out);
DataInputStream dis = new DataInputStream(in);
String s = null;
if((s=dis.readUTF())!=null){
System.out.println(s);
System.out.println("from: "+socket.getInetAddress());
System.out.println("Port: "+socket.getPort());
}
dos.writeUTF("hi,hello");
dis.close();
dos.close();
socket.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
public class TestSocketClient{
public static void main(String [] args){
InputStream is = null;
OutputStream os = null;
try{
Socket socket = new Socket("localhost",5888);
is = socket.getInputStream();
os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hey");
String s = null;
if((s=dis.readUTF())!=null){
System.out.println(s);
}
dos.close();
dis.close();
socket.close();
}catch(UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;
public class TestSocketClient{
public static void main(String [] args){
InputStream is = null;
OutputStream os = null;
try{
Socket socket = new Socket("localhost",5888);
is = socket.getInputStream();
os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hey");
String s = null;
if((s=dis.readUTF())!=null){
System.out.println(s);
}
dos.close();
dis.close();
socket.close();
}catch(UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
相关文章推荐
- 网络_3_2010_03_14
- 网络_1_2010_03_12
- bzoj 1834: [ZJOI2010]network 网络扩容 网络流+费用流
- iOS开发 - 第04篇 - 网络 - 03 - 数据安全 & 文件下载
- Android-网络框架03Volley
- bzoj1822: [JSOI2010]Frozen Nova 冷冻波网络流
- bzoj 1834: [ZJOI2010]network 网络扩容【最大流+最小费用最大流】
- Atitit 移动互联网 技术维度 1. 1.3 移动互联网网络技术13 1 2. 第2章 移动终端53 手机 平板 2 3. 移动操作系统67 2 4. 移动互联网应用技术99 2 5. 3 6.
- 2010_8_13_交换_接入层和汇集层VLAN间路由
- bzoj1834: [ZJOI2010]network 网络扩容(最小费用最大流)
- Exchange 03、07、10、13服务器的退信失败原因
- 2010中国计算机网络安全年会将于2010年9月12日在京召开
- [Android应用开发] 03.网络编程
- Forefront Identity Manager 2010高效身份管理 (03): Forefront Identity Manager 2010 安装过程概述(下)
- python2016-03-13
- 【ZJOI2010】网络扩容
- 西安交通大学网易宣讲会 09-13-2010
- 深度学习中的数学与技巧(13):神经网络之激活函数
- 网络命令大全(13)--ftp
- vc++网络安全编程范例(13)-openssl engine编程