第十九章 网络通信
getHostAddress(); 获取InetAdress对象随包含的ip地址
getHostName();获取IP地址的主机名
一个tcp协议的简单程序
服务器
public static void main(String[] args) {
try {
ServerSocket server=new ServerSocket(11100);
System.out.println("服务器启动完成,等待接入……");
Socket client=server.accept();
System.out.println("有客户端接入,客户端IP为:"+client.getInetAddress());
InputStream in=client.getInputStream();
byte bt[]=new byte[1024];
int len=in.read(bt);
String date=new String(bt,0,len);
System.out.println("souidu "+date);
System.out.println("-----------------------------");
OutputStream out=client.getOutputStream();
String massage="发给客户端";
out.write(massage.getBytes());
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
客户端
public static void main(String[] args) {
try {
Socket client=new Socket("192.168.80.1",11100);
System.out.println("连接成功");
OutputStream out=client.getOutputStream();
String massage="你好。服务器";
out .write(massage.getBytes());
InputStream in=client.getInputStream();
byte bt[]=new byte[1024];
int len=in.read(bt);
System.out.println(new String(bt,0,len));
client.close();
} catch (UnknownHostException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
步骤就是
1,服务器:
先创建一个服务器套接口对象,然后调用accapt()方法,会返回一个和客户端Sckoket对象相连接的对象。然后服务器端向输出流写入信息时,客户端就能通过输入流进行读取,反之亦然。
2.客户端:
创建一个套接字,端口号和服务器端的一致,并且自己的地址真实有效就可以自动连接上了。
大噶这样,要熟练运用IO流的知识。
udp网络传输:
第二十章 数据库
链接数据库方法
先要加载驱动,Class.forName(“com.mysql.jdbc.Driver”);
然后链接数据库 con = DriverManager.getConnection(“jdbc:mysql:”
+ “//127.0.0.1:3306/test”, “root”, “yt010906”);
public Connection getConnection() { // 建立返回值为Connection的方法
try { // 加载数据库驱动类
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try { // 通过访问数据库的URL获取数据库连接对象
con = DriverManager.getConnection("jdbc:mysql:"
+ "//127.0.0.1:3306/test", "root", "yt010906");
System.out.println("数据库连接成功");
} catch (SQLException e) {
e.printStackTrace();
}
return con; // 按方法要求返回一个Connection对象
}
数据库查询
获得ResultSet结果集之后可以对他进行读取等处理。
Gradation c = new Gradation(); // 创建本类对象
con = c.getConnection(); // 与数据库建立连接
try {
sql = con.createStatement(); // 实例化Statement对象
// 执行SQL语句,返回结果集
res = sql.executeQuery("select * from tb_stu");
使用预处理语句查找东西,可以使用通配符,在执行预处理之前要对通配符进行赋值等。
con = c.getConnection(); // 获取与数据库的连接
try {
// 实例化预处理对象
sql = con.prepareStatement("select * from tb_stu"
+ " where name = ?");
sql.setString(1, "李四"); // 设置参数
res = sql.executeQuery(); // 执行预处理语句
// 如果当前记录不是结果集中最后一行,则进入循环体
数据的修改,通过PreparedStatement类指定参数,动态的对表中的数据进行修改,并通过executeUpdate()方法进行更新。