20-01-2009, 21:56
|
|
|
חבר מתאריך: 06.11.04
הודעות: 226
|
|
בעיה תכנות צ'אט ב-c
היי
אני מנסה לעשות תוכנה שכאשר שני מחשבים מחוברים בכבל rs-232c תופעל מעין תוכנת צ'אט.
אני מצרף פה קטע קוד. הבעיה היא שכאשר אני מריץ את זה ואני רושם מילה ועושה אנטר המשתמש השני מקבל רק את האות הראשונה של המילה.
מה יכולה להיות הבעיה?
הערה: כל הפונקציות והדפיינים שיש בקטע קוד תקינים.
תודה
void chat()
{
char SendMessage[200], ReceivedMessage[200];
int SendInd = 0, ReceivedInd = 0;
char ch;
while(DSRisON()) //
{
if(kbhit())
{
ch = getch();
if(ch == ESC)
{
while(!TSRE()); // מחכים עד שהרגיסטטר הזה יהיה ריק
DTRoff();
break;
}
WriteInTop(ch);
if(ch == '~')
{
// ConfinChange();
SendInd = 0;
ReceivedInd = 0;
}
SendMessage[SendInd++] = ch;
while (!THRE()); // מחכה עד השרגיסטר יהיה פנוי
if(ch == ENTER)
{
for(int i=0;i<SendInd; ++i)
outp(THR, SendMessage[i]); // שולחים את הנתונים לרגיסטר שממנו זה יודפס
SendInd = 0;
}
}
else if(DRis1()) // תו התקבל
{
ch = inp(RBR);//מקבלים את התו הזה
ReceivedMessage[ReceivedInd++]=ch;
if (ch == ENTER)
{
for(int i=0; i< ReceivedInd; ++i)
WriteInBottom(ReceivedMessage[i]);
ReceivedInd = 0;
}
checkERROR(inp(LSR));
}
else if(CTSisON())
{
// ConfinChange();
SendInd = 0;
ReceivedInd = 0;
}
}
}
|