package SocketDemo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;public class loginClient {
public static void main(String[] args){
try {//建立客户端socket连接 ,指定服务器位置,急端口
Socket socket=new Socket("localhost",8888);
//得到socket的读写流
OutputStream os=socket.getOutputStream();
PrintWriter pw=new PrintWriter(os);
//输入流
InputStream is=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String info="用户名:tom;用户密码:123456";
pw.write(info);
pw.flush();
socket.shutdownOutput();//关闭输出流
//接受服务器响应
String reply=null;
while(!((reply=br.readLine())==null)){
System.out.println("我是客户端!!服务器端的响应是"+reply);
}
br.close();
is.close();
pw.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}package SocketDemo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class LoginServer {
public static void main(String [] args){
try {
//建立服务器Socket对象,绑定端口开始监听,建议使用大于1024端口
ServerSocket ss=new ServerSocket(8888);
//使用accpet方法阻塞等待监听,获得连接
Socket socket=ss.accept();
//获得输入流
InputStream is=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
//获得输出流
OutputStream os=socket.getOutputStream();
PrintWriter pw=new PrintWriter(os);
// 读取输入信息
String info=null;
while(!((info=br.readLine())==null)){
System.out.println("我是服务器!!用户信息为"+info);
}
String reply="welcome";
pw.write(reply);
pw.flush();
pw.close();
os.close();
br.close();
is.close();
socket.close();
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}服务器端怎么报异常?? 谢谢
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;public class loginClient {
public static void main(String[] args){
try {//建立客户端socket连接 ,指定服务器位置,急端口
Socket socket=new Socket("localhost",8888);
//得到socket的读写流
OutputStream os=socket.getOutputStream();
PrintWriter pw=new PrintWriter(os);
//输入流
InputStream is=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String info="用户名:tom;用户密码:123456";
pw.write(info);
pw.flush();
socket.shutdownOutput();//关闭输出流
//接受服务器响应
String reply=null;
while(!((reply=br.readLine())==null)){
System.out.println("我是客户端!!服务器端的响应是"+reply);
}
br.close();
is.close();
pw.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}package SocketDemo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class LoginServer {
public static void main(String [] args){
try {
//建立服务器Socket对象,绑定端口开始监听,建议使用大于1024端口
ServerSocket ss=new ServerSocket(8888);
//使用accpet方法阻塞等待监听,获得连接
Socket socket=ss.accept();
//获得输入流
InputStream is=socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
//获得输出流
OutputStream os=socket.getOutputStream();
PrintWriter pw=new PrintWriter(os);
// 读取输入信息
String info=null;
while(!((info=br.readLine())==null)){
System.out.println("我是服务器!!用户信息为"+info);
}
String reply="welcome";
pw.write(reply);
pw.flush();
pw.close();
os.close();
br.close();
is.close();
socket.close();
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}服务器端怎么报异常?? 谢谢
Scanner in = new Scanner(is);Scanner和 PrintWriter 一起推荐!
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at java.net.ServerSocket.<init>(ServerSocket.java:97)
at SocketDemo.LoginServer.main(LoginServer.java:16)
找不到原因。。
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at java.net.ServerSocket.<init>(ServerSocket.java:97)
at SocketDemo.LoginServer.main(LoginServer.java:16)
找不到原因哎,搞了半天了
也可以用Win7自带的工具“资源监视器”,把这个名字直接输入开始按钮的那个搜索框就可以启动,然后看“网络”选项卡,下面有个侦听端口。客观地说,我确实比较怀疑是你重复启动服务器端导致。
public static void main(String [] args){
try {
//建立服务器Socket对象,绑定端口开始监听,建议使用大于1024端口
ServerSocket ss=new ServerSocket(8888); System.out.println("开始侦听8888"); Socket socket=ss.accept(); System.out.println("有客户端成功连接");
public class loginClient {
public static void main(String[] args){
try {//建立客户端socket连接 ,指定服务器位置,急端口
System.out.println("尝试连接服务器8888");
Socket socket=new Socket("localhost",8888);
System.out.println("服务器连接成功");
//得到socket的读写流
OutputStream os=socket.getOutputStream();
PrintWriter pw=new PrintWriter(os);