java编程求教!!!TCP的socket编程。我想实现服务器和客户端互发数据,可总出错。。。

服务器程序:importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.DataOut... 服务器程序:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable
{
boolean flag=true;
InputStream in=null;
BufferedReader cin=null;
OutputStream out=null;
DataOutputStream cout=null;
ServerSocket serverSocket=null;
Socket clientSocket=null;
Thread thread=null;
public static void main(String[] args)
{
new Server();
}
Server()
{
try {
serverSocket=new ServerSocket(8082);//创建监听客户端请求的端口
clientSocket=serverSocket.accept();//监听端口(在监听到之前程序一直等待)

System.out.println("与客户端成功建立连接");
thread=new Thread(this);//建立线程用于向客户端写数据
thread.start();//启动线程
InputStream in=clientSocket.getInputStream();
BufferedReader cin=new BufferedReader(new InputStreamReader(in));//服务器从客户端读入数据
OutputStream out=clientSocket.getOutputStream();
DataOutputStream cout=new DataOutputStream(out);//服务器向客户端写数据
String aline=null;
while(flag)//接受客户端传来的信息
{
while((aline=cin.readLine())!=null)
{
System.out.println(aline);
if(aline.equals("bye"))
{
flag=false;
break;
}
}
}
in.close();
cin.close();//关闭流
out.close();
cout.close();
clientSocket.close();
} catch (IOException e) {e.printStackTrace();}
System.exit(0);
}
public void run() //向客户端发送信息
{
while(true)
{
int temp=0;
try {
while((temp=System.in.read())!=-1)
{
cout.write((byte)temp);
if(temp=='\n')
cout.flush();
}
} catch (IOException e) {e.printStackTrace();}
}
}
}
可能别处还有一点问题,但是主要是服务器没法给客户端法数据,不知道为什么,老是提示
cout.write((byte)temp);这行有错误。错误信息如下:
Exception in thread "Thread-0" java.lang.NullPointerException
at Server.run(Server.java:67)
at java.lang.Thread.run(Unknown Source)
展开
 我来答
烏鴉風暴
2016-07-12 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:40.3万
展开全部
空指针异常,

应该是你要发送的信息为空了,

你试试加一个判断,如果要发送的内容不为空才发送。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式