0
CocoaAsyncTask
を使用してObjective Cでサーバーを作成しましたが、ローカルホストと同じネットワークの両方でtelnetから接続すると問題なく動作します。目的CソケットサーバーがJavaソケットクライアントメッセージを受信しない
私はJavaでクライアントを持っていますが、これは別のJavaサーバーでうまく動作し、通信することができません。サーバー側ではメッセージは受信されません。参考のため
は、ここではJavaクライアントコードは次のとおりです。
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("192.168.0.106",4353);
PrintWriter printWriter = new PrintWriter(socket.getOutputStream(),true);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
System.out.println("Enter message: ");
String msg = br.readLine();
if (msg != null && !msg.equals("bye"))
{
printWriter.println(msg);
}
else
{
break;
} } } catch (IOException e) {e.printStackTrace();} } }
とサーバのObjective Cコード:
...
[newSocket readDataToData:[GCDAsyncSocket CRLFData] withTimeout:15.0 tag:0];
...
(void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag {
dispatch_async(dispatch_get_main_queue(), ^{
@autoreleasepool {
DDLogInfo(@"data: %@", data);
NSData *strData = [data subdataWithRange:NSMakeRange(0, [data length] - 2)];
DDLogInfo(@"Info: %@", strData);
NSString *msg = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];
DDLogInfo(@"Info: %@", msg);
我々は最後に\n
と\r
を追加しようとしたが、ない成功を収めてきました。
このミスコミュニケーションの原因は何ですか?