大侠帮忙:用C写的socket和用java写的socket能通信吗? 都可以.可以参考http://blog.csdn.net/kingfish/archive/2005/03/29/333635.aspx 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这篇文章不错!对很多人都有帮助!我要传输的还没有结构体,就是以一个字符串的形式传送,但客户端(C写的)老提示不能建立连接。采用的协议也都是TCP,但就是连不通。我用JAVA写的客户端和我的服务器端通信,可以的。但就是跟C写的客户端不通,而且这个C写的客户端程序也可以和C写的服务器端通信。不知道问题出在哪里? 应该是可以的,用过用socket去post到网上的服务器,连过java, 也连过php和asp的,都可以取到网页上的内容,所以得保证你的c是不是也用的tcp 绝对可以,否则LUMAQQ绝对不能用 呵呵, Java 和 其他的语言 SOCKET 都是使用的 操作系统的实现.当然可以通讯了! 我写的SERVER端的是这样的:import java.net.*; import java.io.*; import java.lang.*; import com.intel.fum.pull.*;import com.intel.fum.common.Processor;public class Server1 extends Thread{ Socket socket1; String address; public Server1(Socket s){ socket1=s; start(); }public static void startServer() { ServerSocket s = null; try { s = new ServerSocket(2222); while (true) { Socket socket1 = s.accept(); new Thread(new Server1(socket1)).start(); } } catch (IOException e) { e.printStackTrace(); } finally { try { s.close(); } catch (IOException e) { e.printStackTrace(); } } } public void run(){ try{ BufferedReader in=new BufferedReader(new InputStreamReader(socket1.getInputStream())); BufferedWriter out=new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream())); while(true){ address=socket1.getInetAddress().getHostAddress(); String str; Processor Pro = new Processor(); while((str=in.readLine())!=null) { String reply=Pro.queryUpgrade(str,address); out.write(reply); } out.flush(); in.close(); out.close(); } } catch(IOException e){ System.err.println("IO Exception"); } finally{ try{ socket1.close(); } catch(IOException e){ System.err.println("Socket not closed"); } } }public static void main(String[] args)throws IOException{ startServer();}public String getaddress(){return address;}}服务器端是没有任何输出,而客户端就是提示不能建立连接。 但,小妹还有一个附加问题想请教:不好意思,分快用完了,所以不能再单独发帖子了。我怎么样把我这个SERVER类文件加到一个批处理文件中让他自动在后台运行。我是这样作的:@echo offif "%1"=="start" goto :START_SERVICEif "%1"=="START" goto :START_SERVICEif "%1"=="stop" goto :STOP_SERVICEif "%1"=="STOP" goto :STOP_SERVICEecho "Usage: VMState START|STOP"goto :EOF:START_SERVICEnet %1 "RMIService"net %1 "LogicService"REM net %1 "AlertReceiver"REM net %1 "ProvisioningService"REM net %1 "RadiusReceiverService"net %1 "JRun Admin Server"net %1 "JRun Default Server"REM net %1 "JRun Backend Server"net %1 "World Wide Web Publishing Service"jview d:\beifen\Servergoto :EOF:STOP_SERVICEREM net %1 "AlertReceiver"net %1 "LogicService"net %1 "RMIService"REM net %1 "ProvisioningService"REM net %1 "RadiusReceiverService"net %1 "JRun Admin Server"net %1 "JRun Default Server"REM net %1 "JRun Backend Server"net %1 "World Wide Web Publishing Service"goto :EOF:EOF@echo on但一关闭DOS窗口,就不能侦听了。我该怎么办?谢谢! 求一段关于foreground的代码 求javaSE的一些视频.. 在eclipse中如果输入main的args参数 如何在Listener中使用另外一个类的变量?(绝对菜!) Ubuntu下WTK中文乱码 怎么把字符串里装的类名读出来,并用它NEW 对象!在线等! GUI布局管理器的问题?(在线等答案) 如何用JAVA开发一个邮件客户端啊???类似FOXMAIL等。。。 问个中文解决的问题!请高手指点~~~~~~~~~ 为什么书上说swing有内建的JOptionDialog;可我的jdk内却没有 java如何能抓取数据包? 请问内存泄漏是什么概念
我要传输的还没有结构体,就是以一个字符串的形式传送,但客户端(C写的)老提示不能建立连接。
采用的协议也都是TCP,但就是连不通。
我用JAVA写的客户端和我的服务器端通信,可以的。但就是跟C写的客户端不通,而且这个C写的客户端程序也可以和C写的服务器端通信。
不知道问题出在哪里?
用过用socket去post到网上的服务器,连过java, 也连过php和asp的,都可以取到网页上的内容,所以得保证你的c是不是也用的tcp
import java.io.*;
import java.lang.*;
import com.intel.fum.pull.*;
import com.intel.fum.common.Processor;
public class Server1 extends Thread{
Socket socket1;
String address;
public Server1(Socket s){
socket1=s;
start();
}
public static void startServer() {
ServerSocket s = null;
try {
s = new ServerSocket(2222);
while (true) {
Socket socket1 = s.accept();
new Thread(new Server1(socket1)).start();
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
s.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
public void run(){
try{
BufferedReader in=new BufferedReader(new InputStreamReader(socket1.getInputStream()));
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream()));
while(true){
address=socket1.getInetAddress().getHostAddress();
String str;
Processor Pro = new Processor();
while((str=in.readLine())!=null)
{
String reply=Pro.queryUpgrade(str,address);
out.write(reply);
}
out.flush();
in.close();
out.close();
}
}
catch(IOException e){
System.err.println("IO Exception");
}
finally{
try{
socket1.close();
}
catch(IOException e){
System.err.println("Socket not closed");
}
}
}public static void main(String[] args)throws IOException{ startServer();}
public String getaddress()
{return address;
}
}
服务器端是没有任何输出,而客户端就是提示不能建立连接。
我怎么样把我这个SERVER类文件加到一个批处理文件中让他自动在后台运行。我是这样作的:
@echo offif "%1"=="start" goto :START_SERVICE
if "%1"=="START" goto :START_SERVICEif "%1"=="stop" goto :STOP_SERVICE
if "%1"=="STOP" goto :STOP_SERVICEecho "Usage: VMState START|STOP"
goto :EOF:START_SERVICEnet %1 "RMIService"net %1 "LogicService"REM net %1 "AlertReceiver"REM net %1 "ProvisioningService"REM net %1 "RadiusReceiverService"net %1 "JRun Admin Server"net %1 "JRun Default Server"REM net %1 "JRun Backend Server"net %1 "World Wide Web Publishing Service"
jview d:\beifen\Servergoto :EOF
:STOP_SERVICE
REM net %1 "AlertReceiver"net %1 "LogicService"net %1 "RMIService"REM net %1 "ProvisioningService"REM net %1 "RadiusReceiverService"net %1 "JRun Admin Server"net %1 "JRun Default Server"REM net %1 "JRun Backend Server"net %1 "World Wide Web Publishing Service"goto :EOF
:EOF@echo on但一关闭DOS窗口,就不能侦听了。我该怎么办?谢谢!