Java_socket程序学习0501-彩票销售-第一阶段server端整理-成功
来源:互联网 发布:unity3d小游戏制作视频 编辑:程序博客网 时间:2024/05/20 22:02
这次找到了失败的问题。
1.String bx[]=str_c.split("\\|"); 然后再box=bx;成功了
失败的方法是string box[],这里就相当于在外部和方法中都定义了String box[],这样方法内的box就变成类内部变量,而且不用string 直接box[]=str_c("\\|");报错,不能这样用。
package db;
import java.io.*;
import java.net.*;
import java.sql.*;
import javax.swing.JOptionPane;
import tcp.ThreadServer.Soin;
import tcp.ThreadServer.Syin;
import java.sql.*;
public class server {
static int portNO = 8886;
static ServerSocket server = null;
public static Socket socket = null;
static String str_c = null;
public static BufferedReader is;
public static PrintWriter os;
//服务器建立
public void serverCreate(){
try{
server = new ServerSocket(portNO); //开启socketserver服务
System.out.println("success");
}catch (Exception e5)
{
e5.printStackTrace();
}
}
//线程类
public static class ToClientOP extends Thread {
ResultSet rs;
Statement sql;
Connection con;
Socket socket01;
static String box[];
public ToClientOP(){}
public ToClientOP(Socket a){ //构造函数,为了传递参数登录server的客户端socket
this.socket01=a;
}
//线程主体
public void run() { //线程主体,用来处理客户端的一切操作
this.rec_s(socket01);
int i_tag = Integer.parseInt(box[0]);
this.match(i_tag);//使用match方法类来对客户端的请求进行比对,是登录login?还是销售sale? ,tag是string类型。需要用interger把他变成int类型
}
//接收客户端的字符串
public void rec_s(Socket a){
Socket socketx = a;
try{
is=new BufferedReader(new InputStreamReader(socketx.getInputStream()));
os=new PrintWriter(socketx.getOutputStream());
str_c = is.readLine();
}catch (Exception e4)
{
e4.printStackTrace();
}
System.out.println(str_c);
String bx[]=str_c.split("\\|"); //直接给box[]是不是不好使,报错
box=bx; //字符串数组赋值,不是box[]=bx[]
}
//数据库连接
public void connect(){
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/dbtest";
con = DriverManager.getConnection(url, "root","123456");
sql = con.createStatement();
}catch (Exception e1)
{
e1.printStackTrace();
}
}
//比对标记
public void match(int a){
int m_tag=a;
switch(m_tag)
{
case 1001:{
this.connect();
System.out.println("2222");
String name = box[1];
String pass = box[2];
System.out.println(name);
System.out.println(pass);
try{
rs = sql.executeQuery("Select * From user");
while (rs.next()){
String name1 = rs.getString("name");
String pass1 = rs.getString("pass");
System.out.println(name1);
if((name1.equals(name))&&(pass1.equals(pass))){
os.println("1001|123");
os.flush();
con.close();
}
}
}catch (Exception e2)
{
e2.printStackTrace();
}
os.println("1001|false");
os.flush();
System.out.println("22222222222");
break; //如果不用会直接去执行case1002
}//case
case 3001:{
}
}//switch
}
}
//主方法
public static void main(String[] args) {
new server().serverCreate(); //建立socketserver
while(true){
try{
socket = server.accept(); //阻塞、侦听。
}catch (Exception e6)
{
e6.printStackTrace();
}
ToClientOP tco = new ToClientOP(socket);//实例化线程类,(有构造函数)
tco.start(); //执行线程主体
}
}
}
0 0
- Java_socket程序学习0501-彩票销售-第一阶段server端整理-成功
- Java_socket程序学习0501-彩票销售-第一阶段server端整理-失败
- Java_socket程序学习05-彩票销售-第一阶段
- Java_socket程序学习06-彩票销售-第一阶段+3d+lot销售
- Java_socket程序学习01-一个客户端对一个服务器
- java_Socket通信_聊天程序
- java_Socket通信_聊天程序
- java_Socket通信_聊天程序
- JAVA_Socket
- java_Socket
- java_Socket
- Java_socket
- Java_socket程序学习02-一个客户端对一个服务器-客户端键盘输入
- Java_socket程序学习03-一个客户端对一个服务器-交互(服务器端)--01
- Java_socket程序学习03-一个客户端对一个服务器-交互(客户端)--02
- Java_socket程序学习04-一个服务器对多个一个客户端
- 第一阶段自我整理
- 第一阶段错题整理
- iOS之UITextView和UITextFiled的区别
- Leetcode_53_MaximumSubarray
- Max Factor hdu2710
- 后台List<String> list 传到前台 select输出 问题
- Python--简单的用户管理系统
- Java_socket程序学习0501-彩票销售-第一阶段server端整理-成功
- 职业女性确实处于劣势吗?记一次不甚严谨的考据 -- 向胡适之先生的遥远致敬
- Cocos2d-x_Box2D刚体使用PhysicsEditor工具生成形状
- 2011年哈尔滨工业大学计算机研究生机试真题
- WCF实例上下文与并发
- iOS开发--利用NSProxy实现消息转发-模块化的网络接口层设计
- hdu 2610 Sequence one ( dfs+可行性剪枝 )
- 动态规划-阿里笔试
- Spark集群资源调度