是的,多发了几次也收不到! Java socket 客户端验证通过,应该没问题,后来我 用了线程也不行! 我现在将代码附上,请您帮我看看问题出在那里! 万分感谢! 客户端和服务器位于本地计算机上,计算机名:ysg 监听端口:8083 客户端: import java.net.*; import java.io.*; import java.lang.*;class receiveThread extends Thread{ public void run() { try { BufferedReader in=new BufferedReader(new InputStreamReader(serverAgent.aSocket.getInputStream())); String st = in.readLine(); System.out.println(st); } catch (IOException e) {e.printStackTrace();} } }class serverAgent{ static Socket aSocket=null; public serverAgent(String name,int port){ try{ aSocket=new Socket(name,port); }catch(IOException e){} } } class sendThread extends Thread{ public void run() { try { PrintWriter out = new PrintWriter(serverAgent.aSocket.getOutputStream()); BufferedReader wt = new BufferedReader(new InputStreamReader(System. in)); String str=wt.readLine(); while(true) { out.println(str); out.flush(); } }catch(IOException e){e.printStackTrace();} } } public class ClientThread{ static sendThread sendData; static receiveThread getData; public static void main(String[] args){ serverAgent Agent= new serverAgent("ysg", 8083); sendData=new sendThread(); getData=new receiveThread(); sendData.start(); getData.start(); } } 服务端:Option Explicit Dim iSocket As Integer Dim s As StringPrivate Sub Form_Load() Winsock1.LocalPort = 8083 Winsock1.Listen End Sub Private Sub Winsock1_Close() Winsock1.Close End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long) If Winsock1.State <> sckClosed Then Winsock1.Close Winsock1.Accept requestID End If End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim t As String t="ok" Winsock1.GetData s, vbString Text1.Text = s Winsock1.GetData t,vbstring End Sub
楼主【ysgzyq1982】截止到2008-06-26 21:46:35的历史汇总数据(不包括此帖):
发帖数:0 发帖分:0
结贴数:0 结贴分:0
未结数:0 未结分:0
结贴率:-------------------结分率:-------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
可能由于vb socket发送数据不及时刷新缓冲区,服务器端多发几次客户端也收不到吗
Java socket 客户端验证通过,应该没问题,后来我 用了线程也不行!
我现在将代码附上,请您帮我看看问题出在那里!
万分感谢!
客户端和服务器位于本地计算机上,计算机名:ysg 监听端口:8083
客户端:
import java.net.*;
import java.io.*;
import java.lang.*;class receiveThread extends Thread{
public void run() {
try {
BufferedReader in=new BufferedReader(new InputStreamReader(serverAgent.aSocket.getInputStream()));
String st = in.readLine();
System.out.println(st);
} catch (IOException e) {e.printStackTrace();}
}
}class serverAgent{
static Socket aSocket=null;
public serverAgent(String name,int port){
try{
aSocket=new Socket(name,port);
}catch(IOException e){}
}
}
class sendThread extends Thread{
public void run() {
try {
PrintWriter out = new PrintWriter(serverAgent.aSocket.getOutputStream());
BufferedReader wt = new BufferedReader(new InputStreamReader(System.
in));
String str=wt.readLine();
while(true)
{ out.println(str);
out.flush();
}
}catch(IOException e){e.printStackTrace();}
}
}
public class ClientThread{
static sendThread sendData;
static receiveThread getData;
public static void main(String[] args){
serverAgent Agent= new serverAgent("ysg", 8083);
sendData=new sendThread();
getData=new receiveThread();
sendData.start();
getData.start();
}
}
服务端:Option Explicit
Dim iSocket As Integer
Dim s As StringPrivate Sub Form_Load()
Winsock1.LocalPort = 8083
Winsock1.Listen
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
End SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then
Winsock1.Close
Winsock1.Accept requestID
End If
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim t As String
t="ok"
Winsock1.GetData s, vbString
Text1.Text = s
Winsock1.GetData t,vbstring
End Sub
是不是string & vbCrLf
或string & chr(13) & chr(10)?