黑马程序员技术交流社区
标题:
一个简易的多线程TCP登录程序
[打印本页]
作者:
余旋
时间:
2015-11-7 20:38
标题:
一个简易的多线程TCP登录程序
package com.oxbridge.cos.net;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
//TCP客户端
public class TcpLogin {
public static void main(String[] args) {
try {
//定义一个socket连接
Socket socket = new Socket("172.27.35.3",10001);
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
BufferedReader in =
new BufferedReader(new InputStreamReader(socket.getInputStream()));
for(int index = 0;index<3;index++)
{
//将从键盘录入的数据发送到服务器端
String name =bufr.readLine();
out.println(name);
String info = in.readLine();
System.out.println(info);
if(info.contains("OK"))
break;
}
bufr.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated constructor stub
System.out.println("error");
}
}
}
复制代码
package com.oxbridge.cos.net;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
//TCP服务端
public class TCPServers {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(10001);
while(true)
{
//创建一个线程运行LoginServer
Socket socket = server.accept();
new Thread(new LoginServer(socket)).start();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class LoginServer implements Runnable
{
private Socket socket;
public LoginServer(Socket server) {
// TODO Auto-generated constructor stub
this.socket = server;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(),true);
BufferedReader reader ;
for(int index=0;index<3;index++)
{
reader = new BufferedReader(new FileReader("C:\\Users\\cos\\Desktop\\user.txt"));
String temp = null;
String name =in.readLine();
if(name ==null)
break;
boolean flag = false;
while((temp=reader.readLine())!=null)
{
if(temp.equals(name))
{
flag = true;
break;
}
}
if (flag)
{
System.out.println(name+" is login");
out.println(name+" OK,Welcome");
break;
}
else
{
System.out.println(name+" is connected");
out.println(name+" is a unavailable username");
}
reader.close();
}
socket.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("Database error");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("connected failed");
}
}
}
复制代码
作者:
雨来
时间:
2015-11-7 21:09
如果兄台把注释写得更详细一些,效果会更好
作者:
dai2686779
时间:
2015-11-7 21:18
666666666666666666666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2