网络编程入门
来源:互联网 发布:软件项目经理资格证书 编辑:程序博客网 时间:2024/05/21 11:04
回顾一下网络协议的知识,可以帮助网络编程理解;
网络协议:
http:超文本传输协议;
ftp:文件传输协议;
tcp:传输控制协议;
udp:用户数据报协议;
ip:互联网协议;
协议本质上是一种约定/规则,用于描述不同主机之间通信的方式。
接下来是基于TCP协议的编程模型
C/s(client/server)
B/S(brower/server)
Socket :网络编程中的逻辑载体,包括了ip地址和端口号。
编程模型,通信过程:
服务端:
1.创建server类型的对象,并创建端口号;
2.等待客户端的连接请求,使用accept方法;
3.当有客户端连接成功,创建socket对象,使用输入输出流进行通信;
4.关闭socket对象和serversocket对象;
客户端:
1.创建socket类型的对象,并提供ip地址和端口号。
2.使用输入输出流通信;
3.关闭socket对象。
方法简介
1.serversocket类
java.net.ServerSocket创建服务器套接字对象,等待客户端连接;
ServerSocket(int port)创建待连接,并设置端口号;
accept()监听并接受此套接字的连接;
close()关闭套接字;
2.Socket类
java.net.Socket创建客户端套接字对象,套接字是通信的端点
getinputstream()获得输入流;
getoutputstream()获得输出流;
close()关闭套接字
测试案例:
服务端
package studentmanager;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Serversocket {
public static void main(String[] args) { // TODO Auto-generated method stub //创建serversocket,端口 try { ServerSocket serversocket=new ServerSocket(8880); //等待连接 Socket socket1=serversocket.accept();//阻塞状态,有连接向下执行 // DataInputStream inputStream=new DataInputStream(socket1.getInputStream()); System.out.println(inputStream.readInt()); socket1.close(); serversocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }}
}
客户端
package studentmanager;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Socketc {
public static void main(String[] args) {
String address = null;
int port = 0;
//创建客户端对象
try {
// Socket sock=new Socket(“ip地址”, 8888);
Socket sock=new Socket(“172.20.10.7”, 8880);
DataOutputStream outputStream=new
DataOutputStream(sock.getOutputStream());
outputStream.writeInt(88);
outputStream.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- vc网络编程入门
- vc网络编程入门
- Linux网络编程入门
- 网络编程入门
- vc网络编程入门
- 网络编程入门
- 网络编程入门-socket
- vc网络编程入门
- vc网络编程入门
- Linux网络编程入门
- Linux网络编程入门
- Linux网络编程入门
- Linux网络编程入门
- 网络编程入门心得
- 网络服务器编程入门
- Linux网络编程入门
- 网络编程基础--入门
- 网络编程入门
- bash中 2>&1 & 的解释
- chrome下清除dns缓存
- jsp 自定义标签详解
- eclipse断点调试方法
- 程序设计模式(七) C++ 桥(Bridge)模式
- 网络编程入门
- Unity3D调用Android提供的接口
- C++全排列:一种新的全排列方法(使用单向链表实现)
- 遗传算法
- 利用python进行数据分析——data = {i : randn() for i in range(7))
- iOS Duplicate interface definition for class 'AppDelegate' ; Property has a previous declaration
- [hash] -- 分布均匀的hash函数
- string,stringbuffer, stringbuffbuilder
- Android中PopupWindow设置背景的方案处理